﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.IO;
using System.Windows.Markup;
using System.Security.Principal;
using System.Windows.Resources;
using System.Collections;
using CMD_DKT.ClientsDGrid;
using System.Data;
using CMD_DKT.BAL;
using CMD_DKT.Utilities;
using CMD.BAL.CAT;
using System.ComponentModel;
using CMD.BAL.MISC;

namespace CMD_DKT.Sol
{
    public class UISolicitudes
    {
        public ContentControl PanelAccion;
        ContentControl PanelNavegacion;
        public ScrollViewer PanelCentral;
        public Popup Nueva;
        public StackPanel sPanel;
        public Grid naviGrid;
        public Solicitud solicitud;
        public Label lblTodas;
        public TextBlock lblAltas;//Label lblAltas;
        public TextBlock lblModificaciones;
        public TextBlock lblReemplazos;
        public TextBlock lblAprobadas;
        public TextBlock lblBorradores;
        private UINuevaSolicitud alta;
        private UIReemplazos reemplazar;
        private UIModificaciones modificar;

        public TextBlock lblContTodas;
        public TextBlock lblContAltas;  // Label lblContAltas;
        public TextBlock lblContModificaciones;
        public TextBlock lblContReemplazos;
        public TextBlock lblContAprobadas;
        public TextBlock lblContBorradores;
        public TextBlock lblCntBrdEnviando;
        public TextBlock lblCntBrdProceso;
        public TextBlock lblCntBrdCancelada;
        public TextBlock lblCntBrdRechazada;

        public TextBlock lblCancelada;
        public TextBlock lblEnviando;
        public TextBlock lblProceso;
        public TextBlock lblRechazadas;

        public Border brdTodas;
        public Border brdAltas;
        public Border brdModificaciones;
        public Border brdReemplazos;
        public Border brdAprobadas;
        public Border brdBorradores;
        public Border brdEnviando;
        public Border brdProceso;
        public Border brdCancelada;
        public Border brdRechazada;
        public Border cntBrdTodas;
        public Border cntBrdAltas;
        public Border cntBrdModificaciones;
        public Border cntBrdReemplazos;
        public Border cntBrdAprobadas;
        public Border cntBrdBorradores;
        public Border cntBrdEnviando;
        public Border cntBrdProceso;
        public Border cntBrdCancelada;
        public Border cntBrdRechazada;
        public Border brdTipo;
        public Border brdStatus;
        public Border brdAutorizante;
        public Image imgTipo;
        public Image imgStatus;
        public Image imgAutorizante;

        public StackPanel BtnTodasStckPnl;
        public StackPanel BtnAltasStckPnl;
        public StackPanel BtnModificacionesStckPnl;
        public StackPanel BtnReemplazosStckPnl;
        public StackPanel BtnAprobadasStckPnl;
        public StackPanel BtnBorradoresStckPnl;
        public StackPanel BtnCanceladaStckPnl;
        public StackPanel BtnEnviandoStckPnl;
        public StackPanel BtnEnprocesoStckPnl;
        public StackPanel BtnRechazadaStckPnl;

        // BZG
        public RowDefinition RwDef;
        private int Tipo = 0;
        private int Status = 0;
        private bool Todas = true;
        private long[] lGrid;
        private int[] iGridAsc;
        private int[] iActiveOrder;

        public TextBlock lblContRDatosMaestros;
        public TextBlock lblContRCredyCobra;
        public TextBlock lblContRDistribucion;
        public TextBlock lblContRCatRetail;
        public TextBlock lblContRDesyAdmin;
        

        public StackPanel BtnDatosMaestrosStckPnl;
        public StackPanel BtnCredyCobraStckPnl;
        public StackPanel BtnDistribucionStckPnl;
        public StackPanel BtnCatRetailStckPnl;
        public StackPanel BtnDesyAdminStckPnl;

        private String correoUsuario;

        public String CorreoUsuario
        {
            get { return correoUsuario; }
            set { correoUsuario = value; }
        }

        public UISolicitudes(ContentControl PA, ContentControl PN, ScrollViewer PC)
        {
            PanelAccion = PA;
            PanelNavegacion = PN;
            PanelCentral = PC;

            PanelAccion.Content = null;

            //-------------------- Carga el Panel de Acción ------------------- //

            string nombre = @"botonesSolicitudCliente.xaml";
            DependencyObject rootElement;
            using (FileStream fs = new FileStream(nombre, FileMode.Open))
            {
                rootElement = (DependencyObject)XamlReader.Load(fs);
            }
            PanelAccion.Content = rootElement;
            FrameworkElement frameworkElement = (FrameworkElement)rootElement;

            //Reconoce el border nueva como botón y le anexa un evento
            Border brdNueva = (Border)frameworkElement.FindName("actBtnSolNueva");
            brdNueva.MouseUp += new MouseButtonEventHandler(brdNueva_MouseUp);

            //Reconoce el border Eliminar como botón y le anexa un evento 
            Border brdEliminar = (Border)frameworkElement.FindName("actBtnSolEliminar");
            brdEliminar.MouseUp += new MouseButtonEventHandler(brdEliminar_MouseUp);

            //Reconoce la popup como elemento
            Nueva = (Popup)frameworkElement.FindName("popNueva");
            // Nueva.MouseUp += new MouseButtonEventHandler(Nueva_MouseUp);

            Label lbAlta = (Label)frameworkElement.FindName("lblAlta");
            lbAlta.MouseUp += new MouseButtonEventHandler(lbAlta_MouseUp);

            Label lbModificacion = (Label)frameworkElement.FindName("lblModificacion");
            lbModificacion.MouseUp += new MouseButtonEventHandler(lbModificacion_MouseUp);

            Label lbReemplazo = (Label)frameworkElement.FindName("lblReemplazo");
            lbReemplazo.MouseUp += new MouseButtonEventHandler(lbReemplazo_MouseUp);


            //----------------- Carga el panel de navegación ------------------- //

            string nombre2 = @"NavegacionSolicitudCliente.xaml";

            DependencyObject rootElement2;
            using (FileStream fs2 = new FileStream(nombre2, FileMode.Open))
            {
                rootElement2 = (DependencyObject)XamlReader.Load(fs2);
            }

            PanelNavegacion.Content = rootElement2;
            FrameworkElement frameworkElement2 = (FrameworkElement)rootElement2;

            naviGrid = (Grid)frameworkElement2.FindName("NavigationGrid");

            //Reconoce la etiqueta Todas como botón y le anexa un evento
            //lblTodas = (Label)frameworkElement2.FindName("lblTodas");
            //lblTodas.MouseUp += new MouseButtonEventHandler(lblTodas_MouseUp);

            brdTodas = (Border)frameworkElement2.FindName("BrdTodas");
            // brdTodas.MouseUp += new MouseButtonEventHandler(brdTodas_MouseUp);

            brdAltas = (Border)frameworkElement2.FindName("BrdAltas"); //lblAltas
            //brdAltas.MouseUp += new MouseButtonEventHandler(brdAltas_MouseUp);

            brdModificaciones = (Border)frameworkElement2.FindName("BrdModificaciones");  //lblModificaciones
            //brdModificaciones.MouseUp += new MouseButtonEventHandler(brdModificaciones_MouseUp);        

            brdReemplazos = (Border)frameworkElement2.FindName("BrdReemplazos"); //lblReemplazos
            //brdReemplazos.MouseUp += new MouseButtonEventHandler(brdReemplazos_MouseUp);

            brdAprobadas = (Border)frameworkElement2.FindName("BrdAprobadas");   //lblAprobadas
            //brdAprobadas.MouseUp += new MouseButtonEventHandler(brdAprobadas_MouseUp);

            brdBorradores = (Border)frameworkElement2.FindName("BrdBorradores"); //lblBorradores
            //brdBorradores.MouseUp += new MouseButtonEventHandler(brdBorradores_MouseUp);

            brdCancelada = (Border)frameworkElement2.FindName("BrdCancelada");   //lblCancelada
            //brdCancelada.MouseUp += new MouseButtonEventHandler(brdCancelada_MouseUp);

            brdEnviando = (Border)frameworkElement2.FindName("BrdEnviando");     //lblEnviando
            //brdEnviando.MouseUp += new MouseButtonEventHandler(brdEnviando_MouseUp);

            brdProceso = (Border)frameworkElement2.FindName("BrdProceso");   //lblProceso
            //brdProceso.MouseUp += new MouseButtonEventHandler(brdProceso_MouseUp);

            brdRechazada = (Border)frameworkElement2.FindName("BrdRechazada"); //lblRechazadas
            //brdRechazada.MouseUp += new MouseButtonEventHandler(brdRechazada_MouseUp);

            BtnTodasStckPnl = (StackPanel)frameworkElement2.FindName("BtnTodasStckPnl");
            BtnTodasStckPnl.MouseUp += new MouseButtonEventHandler(brdTodas_MouseUp);
            //BZG
            setSelectedLabelStyle(BtnTodasStckPnl);

            BtnAltasStckPnl = (StackPanel)frameworkElement2.FindName("BtnAltasStckPnl");
            BtnAltasStckPnl.MouseUp += new MouseButtonEventHandler(brdAltas_MouseUp);

            BtnModificacionesStckPnl = (StackPanel)frameworkElement2.FindName("BtnModificacionesStckPnl");
            BtnModificacionesStckPnl.MouseUp += new MouseButtonEventHandler(brdModificaciones_MouseUp);
            BtnReemplazosStckPnl = (StackPanel)frameworkElement2.FindName("BtnReemplazosStckPnl");
            BtnReemplazosStckPnl.MouseUp += new MouseButtonEventHandler(brdReemplazos_MouseUp);
            BtnAprobadasStckPnl = (StackPanel)frameworkElement2.FindName("BtnAprobadasStckPnl");
            BtnAprobadasStckPnl.MouseUp += new MouseButtonEventHandler(brdAprobadas_MouseUp);
            BtnBorradoresStckPnl = (StackPanel)frameworkElement2.FindName("BtnBorradoresStckPnl");
            BtnBorradoresStckPnl.MouseUp += new MouseButtonEventHandler(brdBorradores_MouseUp);
            BtnCanceladaStckPnl = (StackPanel)frameworkElement2.FindName("BtnCanceladaStckPnl");
            BtnCanceladaStckPnl.MouseUp += new MouseButtonEventHandler(brdCancelada_MouseUp);
            BtnEnviandoStckPnl = (StackPanel)frameworkElement2.FindName("BtnEnviandoStckPnl");
            BtnEnviandoStckPnl.MouseUp += new MouseButtonEventHandler(brdEnviando_MouseUp);
            BtnEnprocesoStckPnl = (StackPanel)frameworkElement2.FindName("BtnEnprocesoStckPnl");
            BtnEnprocesoStckPnl.MouseUp += new MouseButtonEventHandler(brdProceso_MouseUp);
            BtnRechazadaStckPnl = (StackPanel)frameworkElement2.FindName("BtnRechazadaStckPnl");
            BtnRechazadaStckPnl.MouseUp += new MouseButtonEventHandler(brdRechazada_MouseUp);

            BtnDatosMaestrosStckPnl = (StackPanel)frameworkElement2.FindName("BtnDatosMaestrosStckPnl");
            BtnDatosMaestrosStckPnl.MouseUp += new MouseButtonEventHandler(BtnDatosMaestrosStckPnl_MouseUp);
            BtnCredyCobraStckPnl = (StackPanel)frameworkElement2.FindName("BtnCredyCobraStckPnl");
            BtnCredyCobraStckPnl.MouseUp += new MouseButtonEventHandler(BtnCredyCobraStckPnl_MouseUp);
            BtnDistribucionStckPnl = (StackPanel)frameworkElement2.FindName("BtnDistribucionStckPnl");
            BtnDistribucionStckPnl.MouseUp += new MouseButtonEventHandler(BtnDistribucionStckPnl_MouseUp);
            BtnCatRetailStckPnl = (StackPanel)frameworkElement2.FindName("BtnCatRetailStckPnl");
            BtnCatRetailStckPnl.MouseUp += new MouseButtonEventHandler(BtnCatRetailStckPnl_MouseUp);
            BtnDesyAdminStckPnl = (StackPanel)frameworkElement2.FindName("BtnDesyAdminStckPnl");
            BtnDesyAdminStckPnl.MouseUp += new MouseButtonEventHandler(BtnDesyAdminStckPnl_MouseUp);

            Grid _brdNavgrdNav01 = (Grid)frameworkElement2.FindName("NavigationGrid");
            foreach (Object __tmp in _brdNavgrdNav01.Children)
            {
                if (__tmp is Border)
                {
                    Border __tmpBrd = (Border)__tmp;
                    __tmpBrd.Background = Brushes.Transparent;
                }
            }

            lblContAltas = (TextBlock)frameworkElement2.FindName("lblContAlta");//////////////////////
            lblContModificaciones = (TextBlock)frameworkElement2.FindName("lblContModificaciones");
            lblContReemplazos = (TextBlock)frameworkElement2.FindName("lblContReemplazos");
            lblContAprobadas = (TextBlock)frameworkElement2.FindName("lblContAprobadas");
            lblContBorradores = (TextBlock)frameworkElement2.FindName("lblcontBorradores");

            lblContTodas = (TextBlock)frameworkElement2.FindName("lblContTodas");
            lblCntBrdProceso = (TextBlock)frameworkElement2.FindName("lblContProceso");
            lblCntBrdCancelada = (TextBlock)frameworkElement2.FindName("lblContCancelada");
            lblCntBrdRechazada = (TextBlock)frameworkElement2.FindName("lblContRechazadas");
            lblCntBrdEnviando = (TextBlock)frameworkElement2.FindName("lblContEnviando");

            lblContRCatRetail = (TextBlock)frameworkElement2.FindName("lblContCatRetail");
            lblContRCredyCobra = (TextBlock)frameworkElement2.FindName("lblContCredyCobra");
            lblContRDatosMaestros = (TextBlock)frameworkElement2.FindName("lblContDatosMaestros");
            lblContRDesyAdmin = (TextBlock)frameworkElement2.FindName("lblContDesyAdmin");
            lblContRDistribucion = (TextBlock)frameworkElement2.FindName("lblContDistribucion");

            brdTodas = (Border)frameworkElement2.FindName("BrdTodas");
            brdAltas = (Border)frameworkElement2.FindName("BrdTodas");
            brdModificaciones = (Border)frameworkElement2.FindName("BrdModificaciones");
            brdReemplazos = (Border)frameworkElement2.FindName("BrdReemplazos");
            brdAprobadas = (Border)frameworkElement2.FindName("BrdAprobadas");
            brdBorradores = (Border)frameworkElement2.FindName("BrdBorradores");
            brdEnviando = (Border)frameworkElement2.FindName("BrdEnviando");
            brdProceso = (Border)frameworkElement2.FindName("BrdProceso");
            brdCancelada = (Border)frameworkElement2.FindName("BrdCancelada");
            brdRechazada = (Border)frameworkElement2.FindName("BrdRechazada");

            cntBrdTodas = (Border)frameworkElement2.FindName("cntBrdTodas");
            cntBrdAltas = (Border)frameworkElement2.FindName("cntBrdTodas");
            cntBrdModificaciones = (Border)frameworkElement2.FindName("cntBrdModificaciones");
            cntBrdReemplazos = (Border)frameworkElement2.FindName("cntBrdReemplazos");
            cntBrdAprobadas = (Border)frameworkElement2.FindName("cntBrdAprobadas");
            cntBrdBorradores = (Border)frameworkElement2.FindName("cntBrdBorradores");
            cntBrdEnviando = (Border)frameworkElement2.FindName("cntBrdEnviando");
            cntBrdProceso = (Border)frameworkElement2.FindName("cntBrdProceso");
            cntBrdCancelada = (Border)frameworkElement2.FindName("cntBrdCancelada");
            cntBrdRechazada = (Border)frameworkElement2.FindName("cntBrdRechazada");

            brdTipo = (Border)frameworkElement2.FindName("tipo");
            brdTipo.MouseUp += new MouseButtonEventHandler(brdNavegacionAgrup_MouseUp);
            brdStatus = (Border)frameworkElement2.FindName("status");
            brdStatus.MouseUp += new MouseButtonEventHandler(brdNavegacionAgrup_MouseUp);
            brdAutorizante = (Border)frameworkElement2.FindName("autorizante");
            brdAutorizante.MouseUp += new MouseButtonEventHandler(brdNavegacionAgrup_MouseUp);

            imgTipo = (Image)frameworkElement2.FindName("img_tipo");
            imgStatus = (Image)frameworkElement2.FindName("img_status");
            imgAutorizante = (Image)frameworkElement2.FindName("img_Autorizante");


            // --------------------- Grid   -----------------------------------
            string nombre3 = @"Solicitudes.xaml";
            DependencyObject rootElement3;
            using (FileStream fs3 = new FileStream(nombre3, FileMode.Open))
            {
                rootElement3 = (DependencyObject)XamlReader.Load(fs3);
            }

            PanelCentral.Content = rootElement3;
            FrameworkElement frameworkElement3 = (FrameworkElement)rootElement3;

            sPanel = (StackPanel)frameworkElement3.FindName("SPnlSolicitudes");
            List<Features> caracteristicas = CreateFeaturesList();

            try
            {
                solicitud = new Solicitud();
                DataTable dtSolicitudes = solicitud.GetData(true, 0, 0, 0);
                lGrid = new long[4] { 1, 0, 0, 0 };
                iGridAsc = new int[5] { 1, 1, 1, 1, 1 };
                iActiveOrder = new int[5] { 0, 0, 0, 0, 0 };
                RefreshCounters();
                //DataTable dtSolicitudes = Solicitud.RecuperaSolicitudes(true, 0, 0);
                DataGrid clientGrid = ClientsGrid.createClientsGrid("SolicitudesDataGrid", dtSolicitudes, caracteristicas, "CMD_DKT;component/Resources/DictionaryStyles.xaml");
                clientGrid.MouseDoubleClick += new MouseButtonEventHandler(clientGrid_MouseDoubleClick);
                clientGrid.MouseLeftButtonUp += new MouseButtonEventHandler(clientGrid_MouseLeftButtonUp);
                //ClientsGrid.AddClientsGrid(sPanel, clientGrid); //BZG
                clientGrid.CanUserAddRows = false;
                clientGrid.CanUserDeleteRows = false;
                clientGrid.CanUserResizeColumns = false;
                clientGrid.CanUserResizeRows = false;
                //***************** INI BZG *************************//
                CargaGrid(dtSolicitudes);

                //Setter a = new Setter(Control.BorderThicknessProperty, value: "0,0,0,1");
                //clientGrid.RowStyle.Setters.Add(a);
                // clientGrid.HeadersVisibility = DataGridHeadersVisibility.Row;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


            //solicitud = new Solicitud();
            //Grid dtg = new Grid();
            //dtg.Name = "dtgSol";
            //DefineColumnasGrid(dtg);
            //DefineHeader(dtg);
            //CargaRenglones(dtg, solicitud.GetData(true, 0, 0));
            //sPanel.Children.Add(dtg);


            //TextBlock stp =  new TextBlock();
            //stp.Text = "prueba";

            ////stp.MouseUp += new MouseButtonEventHandler(dgrw_MouseUp); 

            //Grid.SetColumn(stp, 0);
            //Grid.SetRow(stp, 1);

            //dtg.Children.Add(stp);



            //Border bor1 = new Border();
            //bor1.Background = System.Windows.Media.Brushes.Transparent;
            //bor1.CornerRadius = new CornerRadius(5);
            //bor1.Name = "bordePrueba";
            //bor1.MouseUp += new MouseButtonEventHandler(dgrw_MouseUp);

            //Grid.SetColumn(bor1, 0);
            //Grid.SetRow(bor1, 1);

            //dtg.Children.Add(bor1);


            //p = (StackPanel)frameworkElement3.FindName("stpHeader");
            //p.MouseUp += new MouseButtonEventHandler(dgrw_MouseUp); 

            

        }


        /// <summary>
        /// BZG
        /// </summary>
        /// <param name="dGrid"></param>
        private void DefineColumnasGrid(Grid dGrid)
        {
            ColumnDefinition col1 = new ColumnDefinition();
            col1.Name = "CheckBox";
            col1.Width = new GridLength(40);

            ColumnDefinition col7 = new ColumnDefinition();
            col7.Name = "Prioridad";
            col7.Width = new GridLength(40);

            ColumnDefinition col2 = new ColumnDefinition();
            col2.Name = "TipoSol";
            col2.Width = new GridLength(130);

            ColumnDefinition col3 = new ColumnDefinition();
            col3.Name = "Persona";
            col3.Width = new GridLength(80);

            ColumnDefinition col4 = new ColumnDefinition();
            col4.Name = "RazonSocial";
            col4.Width = new GridLength(1, GridUnitType.Star);


            ColumnDefinition col5 = new ColumnDefinition();
            col5.Name = "Status";
            col5.Width = new GridLength(80);


            ColumnDefinition col6 = new ColumnDefinition();
            col6.Name = "Creacion";
            col6.Width = new GridLength(150);

            //DataGridLength(1, DataGridLengthUnitType.SizeToCells);

            dGrid.ColumnDefinitions.Add(col1);
            dGrid.ColumnDefinitions.Add(col7);
            dGrid.ColumnDefinitions.Add(col2);
            dGrid.ColumnDefinitions.Add(col3);
            dGrid.ColumnDefinitions.Add(col4);
            dGrid.ColumnDefinitions.Add(col5);
            dGrid.ColumnDefinitions.Add(col6);




        }
        private void DefineHeader(Grid dGrid)
        {
            try
            {
                DockPanel dockpnl;
                Image img_order;
                //Agrega renglon de Encabezado
                RowDefinition row1 = new RowDefinition();
                row1.Name = "Header";
                dGrid.RowDefinitions.Add(row1);

                //Agrega texto a encabezado
                TextBlock txt1 = new TextBlock();
                txt1.Text = "";
                txt1.VerticalAlignment = VerticalAlignment.Center;
                txt1.HorizontalAlignment = HorizontalAlignment.Center;
                Grid.SetColumn(txt1, 0);
                Grid.SetRow(txt1, 0);

                TextBlock txt2 = new TextBlock();
                txt2.Text = "";
                Grid.SetColumn(txt2, 1);
                Grid.SetRow(txt2, 0);

                dGrid.Children.Add(txt1);
                dGrid.Children.Add(txt2);

                dockpnl = new DockPanel();
                dockpnl.Cursor = Cursors.Hand;
                dockpnl.VerticalAlignment = VerticalAlignment.Center;
                dockpnl.HorizontalAlignment = HorizontalAlignment.Center;
                dockpnl.Margin = new Thickness(5, 0, 5, 0);

                TextBlock txt3 = new TextBlock();
                txt3.Text = "Tipo Solicitud" + Convert.ToChar(30);
                dockpnl.Name = "tipo";
                txt3.VerticalAlignment = VerticalAlignment.Center;
                txt3.HorizontalAlignment = HorizontalAlignment.Center;
                txt3.FontWeight = FontWeights.UltraBold;
                txt3.FontSize = 14;
                dockpnl.MouseUp += new MouseButtonEventHandler(HeaderClick);
                img_order = getOrderGridImage((iGridAsc[0]==1)?true:false);
                img_order.Margin = new Thickness(5, 3, 5, 0);
                DockPanel.SetDock(txt3,Dock.Left);
                DockPanel.SetDock(img_order,Dock.Right);
                dockpnl.Children.Add(txt3);
                if(iActiveOrder[0]==1)
                    dockpnl.Children.Add(img_order);
                Grid.SetColumn(dockpnl, 2);
                Grid.SetRow(dockpnl, 0);
                dGrid.Children.Add(dockpnl);

                dockpnl = new DockPanel();
                dockpnl.Cursor = Cursors.Hand;
                dockpnl.VerticalAlignment = VerticalAlignment.Center;
                dockpnl.HorizontalAlignment = HorizontalAlignment.Center;
                dockpnl.Margin = new Thickness(5, 0, 5, 0);

                TextBlock txt4 = new TextBlock();
                txt4.Text = "Persona";
                dockpnl.Name = "persona";
                txt4.VerticalAlignment = VerticalAlignment.Center;
                txt4.HorizontalAlignment = HorizontalAlignment.Center;
                txt4.FontWeight = FontWeights.ExtraBold;
                txt4.FontSize = 14;
                dockpnl.MouseUp += new MouseButtonEventHandler(HeaderClick);
                img_order = getOrderGridImage((iGridAsc[1] == 1) ? true : false);
                img_order.Margin = new Thickness(5, 3, 5, 0);
                DockPanel.SetDock(txt4, Dock.Left);
                DockPanel.SetDock(img_order, Dock.Right);
                dockpnl.Children.Add(txt4);
                if (iActiveOrder[1] == 1)
                    dockpnl.Children.Add(img_order);
                Grid.SetColumn(dockpnl, 3);
                Grid.SetRow(dockpnl, 0);
                dGrid.Children.Add(dockpnl);

                dockpnl = new DockPanel();
                dockpnl.Cursor = Cursors.Hand;
                dockpnl.VerticalAlignment = VerticalAlignment.Center;
                dockpnl.HorizontalAlignment = HorizontalAlignment.Center;
                dockpnl.Margin = new Thickness(5, 0, 5, 0);

                TextBlock txt5 = new TextBlock();
                txt5.Text = "Razón Social";
                dockpnl.Name = "razonSocial";
                txt5.VerticalAlignment = VerticalAlignment.Center;
                txt5.HorizontalAlignment = HorizontalAlignment.Center;
                txt5.FontWeight = FontWeights.ExtraBold;
                txt5.FontSize = 15;
                dockpnl.MouseUp += new MouseButtonEventHandler(HeaderClick);
                img_order = getOrderGridImage((iGridAsc[2] == 1) ? true : false);
                img_order.Margin = new Thickness(5, 3, 5, 0);
                DockPanel.SetDock(txt5, Dock.Left);
                DockPanel.SetDock(img_order, Dock.Right);
                dockpnl.Children.Add(txt5);
                if (iActiveOrder[2] == 1)
                    dockpnl.Children.Add(img_order);
                Grid.SetColumn(dockpnl, 4);
                Grid.SetRow(dockpnl, 0);
                dGrid.Children.Add(dockpnl);

                dockpnl = new DockPanel();
                dockpnl.Cursor = Cursors.Hand;
                dockpnl.VerticalAlignment = VerticalAlignment.Center;
                dockpnl.HorizontalAlignment = HorizontalAlignment.Center;
                dockpnl.Margin = new Thickness(5, 0, 5, 0);

                TextBlock txt6 = new TextBlock();
                txt6.Text = "Status";
                dockpnl.Name = "status";
                txt6.VerticalAlignment = VerticalAlignment.Center;
                txt6.HorizontalAlignment = HorizontalAlignment.Center;
                txt6.FontWeight = FontWeights.UltraBold;
                txt6.FontSize = 15;
                dockpnl.MouseUp += new MouseButtonEventHandler(HeaderClick);
                img_order = getOrderGridImage((iGridAsc[3] == 1) ? true : false);
                img_order.Margin = new Thickness(5, 3, 5, 0);
                DockPanel.SetDock(txt6, Dock.Left);
                DockPanel.SetDock(img_order, Dock.Right);
                dockpnl.Children.Add(txt6);
                if (iActiveOrder[3] == 1)
                    dockpnl.Children.Add(img_order);
                Grid.SetColumn(dockpnl, 5);
                Grid.SetRow(dockpnl, 0);
                dGrid.Children.Add(dockpnl);

                dockpnl = new DockPanel();
                dockpnl.Cursor = Cursors.Hand;
                dockpnl.VerticalAlignment = VerticalAlignment.Center;
                dockpnl.HorizontalAlignment = HorizontalAlignment.Center;
                dockpnl.Margin = new Thickness(5, 0, 5, 0);

                TextBlock txt7 = new TextBlock();
                txt7.Text = "Creación";
                dockpnl.Name = "creacion";
                txt7.VerticalAlignment = VerticalAlignment.Center;
                txt7.HorizontalAlignment = HorizontalAlignment.Center;
                txt7.FontWeight = FontWeights.UltraBold;
                txt7.FontSize = 15;
                dockpnl.MouseUp += new MouseButtonEventHandler(HeaderClick);
                img_order = getOrderGridImage((iGridAsc[4] == 1) ? true : false);
                img_order.Margin = new Thickness(5, 3, 5, 0);
                DockPanel.SetDock(txt7, Dock.Left);
                DockPanel.SetDock(img_order, Dock.Right);
                dockpnl.Children.Add(txt7);
                if (iActiveOrder[4] == 1)
                    dockpnl.Children.Add(img_order);
                Grid.SetColumn(dockpnl, 6);
                Grid.SetRow(dockpnl, 0);
                dGrid.Children.Add(dockpnl);

            }
            catch (Exception ex)
            {
            }
        }

        void HeaderClick(object sender, MouseButtonEventArgs e)
        {
            try
            {
                Solicitud sol = new Solicitud();
                DataTable dt;
                DockPanel dockpnl = (DockPanel)sender;
                Image img_order;
                foreach (object obj in dockpnl.Children)
                    if (obj.GetType() == typeof(Image))
                        img_order = (Image)obj;
                switch (dockpnl.Name)
                {
                    case "tipo":
                        iGridAsc[0] = (iGridAsc[0] == 1) ? 0 : 1;
                        iGridAsc = new int[5] { iGridAsc[0], 1, 1, 1, 1 };
                        iActiveOrder = new int[5] { 1, 0, 0, 0, 0 };
                        dt = sol.GetData(Convert.ToInt32(lGrid[0]), Convert.ToInt32(lGrid[1]), Convert.ToInt32(lGrid[2]), lGrid[3], 3, iGridAsc[0]);
                            CargaGrid(dt);
                        break;
                    case "persona":
                        iGridAsc[1] = (iGridAsc[1] == 1) ? 0 : 1;
                        iGridAsc = new int[5] { 1, iGridAsc[1], 1, 1, 1 };
                        iActiveOrder = new int[5] { 0, 1, 0, 0, 0 };
                        dt = sol.GetData(Convert.ToInt32(lGrid[0]), Convert.ToInt32(lGrid[1]), Convert.ToInt32(lGrid[2]), lGrid[3], 4, iGridAsc[1]);
                            CargaGrid(dt);
                        break;
                    case "razonSocial":
                        iGridAsc[2] = (iGridAsc[2] == 1) ? 0 : 1;
                        iGridAsc = new int[5] { 1, 1, iGridAsc[2], 1, 1 };
                        iActiveOrder = new int[5] { 0, 0, 1, 0, 0 };
                        dt = sol.GetData(Convert.ToInt32(lGrid[0]), Convert.ToInt32(lGrid[1]), Convert.ToInt32(lGrid[2]), lGrid[3], 5, iGridAsc[2]);
                            CargaGrid(dt);
                        break;
                    case "status":
                        iGridAsc[3] = (iGridAsc[3] == 1) ? 0 : 1;
                        iGridAsc = new int[5] { 1, 1, 1, iGridAsc[3], 1 };
                        iActiveOrder = new int[5] { 0, 0, 0, 1, 0 };
                        dt = sol.GetData(Convert.ToInt32(lGrid[0]), Convert.ToInt32(lGrid[1]), Convert.ToInt32(lGrid[2]), lGrid[3], 6, iGridAsc[3]);
                            CargaGrid(dt);
                        break;
                    case "creacion":
                        iGridAsc[4] = (iGridAsc[4] == 1) ? 0 : 1;
                        iGridAsc = new int[5] { 1, 1, 1, 1, iGridAsc[4] };
                        iActiveOrder = new int[5] { 0, 0, 0, 0, 1 };
                        dt = sol.GetData(Convert.ToInt32(lGrid[0]), Convert.ToInt32(lGrid[1]), Convert.ToInt32(lGrid[2]), lGrid[3], 7, iGridAsc[4]);
                            CargaGrid(dt);
                        break;
                }
            }
            catch (Exception)
            {
                
                throw;
            }
        }
        private static Image getOrderGridImage(Boolean asc)
        {
            Image imgEstatus = new Image();
            BitmapImage bi2 = new BitmapImage();

            bi2.BeginInit();
            bi2.UriSource = new Uri((asc) ? "Images/orderGridDOWN.png" : "Images/orderGridUP.png", UriKind.Relative);
            bi2.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
            bi2.EndInit();
            imgEstatus.Stretch = Stretch.Fill;
            imgEstatus.Source = bi2;
            imgEstatus.Height = 5;
            imgEstatus.Width = 5;
            imgEstatus.HorizontalAlignment = HorizontalAlignment.Right;
            return imgEstatus;
        }
        private void DefineRenglones(Grid dGrid, String Name)
        {
            RowDefinition row1 = new RowDefinition();
            row1.Name = Name;
            row1.Height = new GridLength(30);
            //if (Name != "Header")
            //    row1.Height = new GridLength(30);


            dGrid.RowDefinitions.Add(row1);

        }
        private void DefineEventoRenglones(Grid dGrid, int x, int y, String Name)
        {
            //Fondo del renglon
            Border bor = new Border();
            bor.Background = System.Windows.Media.Brushes.Transparent;
            bor.CornerRadius = new CornerRadius(0, 5, 5, 0);
            bor.Margin = new Thickness(3);
            bor.Name = Name;
            //bor.MouseUp += new MouseButtonEventHandler(dgrw_MouseUp);
            bor.MouseDown += new MouseButtonEventHandler(dgrw_MouseUp);
            bor.MouseEnter += new MouseEventHandler(bor_MouseEnter);
            bor.MouseLeave += new MouseEventHandler(bor_MouseLeave);
            Grid.SetColumn(bor, y);
            Grid.SetRow(bor, x);
            Grid.SetColumnSpan(bor, 7);
            dGrid.Children.Add(bor);

            Border bor1 = new Border();
            bor1.Background = System.Windows.Media.Brushes.Transparent;
            bor1.CornerRadius = new CornerRadius(5, 0, 0, 5);
            bor1.Margin = new Thickness(3, 3, -3, 3);
            bor1.Name = "chk" + Name;
            bor1.MouseDown += new MouseButtonEventHandler(bor_mouseClick);
            bor1.MouseEnter += new MouseEventHandler(bor_MouseEnter);
            bor1.MouseLeave += new MouseEventHandler(bor_MouseLeave);
            Grid.SetColumn(bor1, 0);
            Grid.SetRow(bor1, x);
            dGrid.Children.Add(bor1);


        }
        void bor_mouseClick(object sender, MouseButtonEventArgs e)
        {
            CheckBox chk1 = null;
            string name;
            try
            {

                Border brdr1 = (Border)sender;
                name = brdr1.Name.Substring(3, brdr1.Name.Length - 3);
                foreach (object o in ((Grid)(brdr1.Parent)).Children)
                    if (o.GetType() == typeof(CheckBox))
                        if (((CheckBox)o).Name == name)
                            chk1 = (CheckBox)o;

                if (chk1 != null)
                    chk1.IsChecked = !chk1.IsChecked;
            }
            catch
            {
            }

        }

        void bor_MouseLeave(object sender, MouseEventArgs e)
        {
            Border renglon;
            Border renglon1 = new Border(); ;
            string name;
            try
            {
                renglon = (Border)sender;
                name = renglon.Name.StartsWith("chk") ? renglon.Name.Substring(3, renglon.Name.Length - 3) : "chk" + renglon.Name;

                foreach (object o in ((Grid)(renglon.Parent)).Children)
                    if (o.GetType() == typeof(Border))
                        if (((Border)o).Name == name)
                            renglon1 = (Border)o;
                renglon.Background = new SolidColorBrush(Colors.Transparent);
                renglon.Opacity = 1.0;
                renglon1.Background = new SolidColorBrush(Colors.Transparent);
                renglon1.Opacity = 1.0;
                renglon.Cursor = Cursors.Hand;


            }
            catch
            {
            }
        }

        void bor_MouseEnter(object sender, MouseEventArgs e)
        {
            Border renglon;
            Border renglon1 = new Border(); ;
            string name;
            try
            {
                renglon = (Border)sender;
                name = renglon.Name.StartsWith("chk") ? renglon.Name.Substring(3, renglon.Name.Length - 3) : "chk" + renglon.Name;

                foreach (object o in ((Grid)(renglon.Parent)).Children)
                    if (o.GetType() == typeof(Border))
                        if (((Border)o).Name == name)
                            renglon1 = (Border)o;
                renglon.Background = new SolidColorBrush(Colors.LightGray);
                renglon.Opacity = 0.5;
                renglon1.Background = new SolidColorBrush(Colors.LightGray);
                renglon1.Opacity = 0.5;
                renglon.Cursor = Cursors.Hand;

            }
            catch
            {
            }
        }
        private void CargaRenglones(Grid dGrid, DataTable dtSolicitudes)
        {
            string format = "yyyy/MM/dd  HH:mm:ss ";

            DefineRenglones(dGrid, "Header");

            for (int x = 0; x < dtSolicitudes.Rows.Count; x++)
            {
                DefineRenglones(dGrid, "ID" + dtSolicitudes.Rows[x]["ID"].ToString());
                DefineEstiloRenglones(dGrid, x + 1, 0);


                for (int y = 0; y < dtSolicitudes.Columns.Count; y++)
                {
                    if (y == 0)
                        DefineCheckBox(dGrid, x + 1, 0, "ID" + dtSolicitudes.Rows[x]["ID"].ToString());
                    else if (y == 1)
                        DefineImagenCeldas(dGrid, x + 1, y, dtSolicitudes.Rows[x][y].ToString());
                    else
                        if (y == 6)
                            DefineTextoCeldas(dGrid, x + 1, y, Convert.ToDateTime(dtSolicitudes.Rows[x][y].ToString()).ToString(format));
                        else
                            DefineTextoCeldas(dGrid, x + 1, y, dtSolicitudes.Rows[x][y].ToString());


                    //if (y != 0)
                    //    DefineTextoCeldas(dGrid, x + 1, y, dtSolicitudes.Rows[x][y].ToString());
                    //else
                    //    DefineCheckBox(dGrid, x + 1, 0, "ID" + dtSolicitudes.Rows[x]["ID"].ToString());
                }
                DefineEventoRenglones(dGrid, x + 1, 1, "ID" + dtSolicitudes.Rows[x]["ID"].ToString());
                //TextBlock stp = new TextBlock();
                //stp.Text = dtSolicitudes.Rows[x][2].ToString();

                ////stp.MouseUp += new MouseButtonEventHandler(dgrw_MouseUp); 

                //Grid.SetColumn(stp, 0);
                //Grid.SetRow(stp, x);

                //dGrid.Children.Add(stp);
            }
        }
        private void DefineEstiloRenglones(Grid dGrid, int x, int y)
        {
            //Fondo del renglon
            Border bor = new Border();
            bor.Background = System.Windows.Media.Brushes.WhiteSmoke;
            bor.CornerRadius = new CornerRadius(5);
            bor.Margin = new Thickness(3);
            //bor.Name = "bordePrueba";
            //bor.MouseUp += new MouseButtonEventHandler(dgrw_MouseUp);

            Grid.SetColumn(bor, y);
            Grid.SetRow(bor, x);
            Grid.SetColumnSpan(bor, 7);
            dGrid.Children.Add(bor);

        }
        private void DefineTextoCeldas(Grid dGrid, int x, int y, string Texto)
        {
            TextBlock stp = new TextBlock();
            stp.Text = Texto;
            stp.VerticalAlignment = VerticalAlignment.Center;
            stp.HorizontalAlignment = HorizontalAlignment.Center;
            //stp.Name = dtSolicitudes.Columns[y].ColumnName.ToString();
            //stp.MouseUp += new MouseButtonEventHandler(dgrw_MouseUp); 

            Grid.SetColumn(stp, y);
            Grid.SetRow(stp, x);

            dGrid.Children.Add(stp);
        }
        private string DefineToolTip(string Texto)
        {
            switch (Texto)
            {
                case "/Images/btn_prioridad_alta.png":
                    return "Prioridad Alta";
                case "/Images/btn_prioridad_media.png":
                    return "Prioridad Media";
                case "/Images/btn_prioridad_normal.png":
                    return "Prioridad Normal";
                default:
                    return "";
            }

        }
        private void DefineImagenCeldas(Grid dGrid, int x, int y, string Texto)
        {


            Image stp = new Image();
            stp.Height = 25;
            stp.Source = new BitmapImage(new Uri(Texto, UriKind.Relative));  //Texto;
            stp.VerticalAlignment = VerticalAlignment.Center;
            stp.HorizontalAlignment = HorizontalAlignment.Center;
            stp.ToolTip = DefineToolTip(Texto);
            //stp.MouseUp += new MouseButtonEventHandler(dgrw_MouseUp); 

            Grid.SetColumn(stp, y);
            Grid.SetRow(stp, x);

            dGrid.Children.Add(stp);
        }
        private void DefineCheckBox(Grid dGrid, int x, int y, string Texto)
        {
            CheckBox chk = new CheckBox();
            chk.Name = Texto;
            chk.HorizontalAlignment = HorizontalAlignment.Center;
            chk.VerticalAlignment = VerticalAlignment.Center;

            Grid.SetColumn(chk, y);
            Grid.SetRow(chk, x);

            dGrid.Children.Add(chk);
        }


        static T FindVisualParent<T>(UIElement element) where T : UIElement
        {
            UIElement parent = element;
            while (parent != null)
            {
                T correctlyTyped = parent as T;
                if (correctlyTyped != null)
                {
                    return correctlyTyped;
                }

                parent = VisualTreeHelper.GetParent(parent) as UIElement;
            }

            return null;
        }

        void clientGrid_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            try
            {
                DataGrid grid = (DataGrid)sender;
                DataRowView dr = (DataRowView)grid.SelectedItem;
                if (grid.Columns[0].GetCellContent(dr) != null)
                {
                    CheckBox check = grid.Columns[0].GetCellContent(dr) as CheckBox;
                    check.IsChecked = !check.IsChecked;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("error" + ex.ToString());
            }

        }

        public void RefreshCounters()
        {
            try
            {
                lblContTodas.Text = "(" + solicitud.ContTodas.ToString() + ") >";

                lblContAltas.Text = "(" + solicitud.ContAltas.ToString() + ") >";    //lblContAltas.Content = "(" + solicitud.ContAltas.ToString() + ") >";
                lblContModificaciones.Text = "(" + solicitud.ContModificaciones.ToString() + ") >";
                lblContReemplazos.Text = "(" + solicitud.ContReemplazos.ToString() + ") >";

                lblContAprobadas.Text = "(" + solicitud.ContAprobadas.ToString() + ") >";
                lblContBorradores.Text = "(" + solicitud.ContBorradores.ToString() + ") >";
                lblCntBrdCancelada.Text = "(" + solicitud.ContCancelada.ToString() + ") >";
                lblCntBrdEnviando.Text = "(" + solicitud.ContEnviando.ToString() + ") >";
                lblCntBrdProceso.Text = "(" + solicitud.ContEnProceso.ToString() + ") >";
                lblCntBrdRechazada.Text = "(" + solicitud.ContRechazada.ToString() + ") >";

                lblContRDatosMaestros.Text = "(" + solicitud.ContRDMaestros.ToString() + ") >";
                lblContRCredyCobra.Text = "(" + solicitud.ContRCreditoC.ToString() + ") >";
                lblContRDistribucion.Text = "(" + solicitud.ContRDistribucion.ToString() + ") >";
                lblContRCatRetail.Text = "(" + solicitud.ContRCRetailD.ToString() + ") >";
                lblContRDesyAdmin.Text = "(" + solicitud.ContRDAProveedores.ToString() + ") >";

            }
            catch (Exception ex)
            {
                throw ex;

            }
        }//RefreshCounters
        //adecuar evento doble click
        void clientGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            DataGrid grid = (DataGrid)sender;
            DataRowView dr = (DataRowView)grid.SelectedItem;
            try
            {
                string Id = dr[0].ToString();
                CheckBox check = grid.Columns[0].GetCellContent(dr) as CheckBox;// DataGridCheckBoxColumn;

                // método para abrir  la solicitud
                Solicitud solicitudActual = new Solicitud(Id);

                //aqui va el cargado de formularios


                string x = solicitudActual.dsSolicitud.Tables[11].Rows[0]["ID_TIPO_SOLICITUD"].ToString();

                cargarSolicitud(x, solicitudActual);

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

        #region EventHandlers del panel lateral izquierdo (filtros)
        void BtnDesyAdminStckPnl_MouseUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 3, 0, AppConfs.Unid_DesarrolloYAdmonProveedores);
            lGrid = new long[4] { 0, 3, 0, AppConfs.Unid_DesarrolloYAdmonProveedores };
            Todas = false;
            Status = 3;
            Tipo = 0;
            CargaGrid(dt);
        }

        void BtnCatRetailStckPnl_MouseUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 3, 0, AppConfs.Unid_CategoryRetailDistribution);
            lGrid = new long[4] { 0, 3, 0, AppConfs.Unid_CategoryRetailDistribution };
            Todas = false;
            Status = 3;
            Tipo = 0;
            CargaGrid(dt);
        }

        void BtnDistribucionStckPnl_MouseUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 3, 0, AppConfs.Unid_Distribucion);
            lGrid = new long[4] { 0, 3, 0, AppConfs.Unid_Distribucion };
            Todas = false;
            Status = 3;
            Tipo = 0;
            CargaGrid(dt);
        }

        void BtnCredyCobraStckPnl_MouseUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 3, 0, AppConfs.Unid_CreditoYCobranza);
            lGrid = new long[4] { 0, 3, 0, AppConfs.Unid_CreditoYCobranza };
            Todas = false;
            Status = 3;
            Tipo = 0;
            CargaGrid(dt);
        }

        void BtnDatosMaestrosStckPnl_MouseUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 3, 0, AppConfs.Unid_datosMaestros);
            lGrid = new long[4] { 0, 3, 0, AppConfs.Unid_datosMaestros };
            Todas = false;
            Status = 3;
            Tipo = 0;
            CargaGrid(dt);

        }

        void brdRechazada_MouseUp(object sender, MouseButtonEventArgs e)
        {
            //Label actual = (Label)sender;
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 6, 0, 0);
            lGrid = new long[4] { 0, 6, 0, 0 };
            // ********** INI - BZG ***************//
            Todas = false;
            Status = 6; //Establece el status actual.
            Tipo = 0; //Establece el tipo actual.
            CargaGrid(dt);
            //FillDataGrid(dt);
            //********** INI - BZG ****************//
        }

        void brdProceso_MouseUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 3, 0, 0);
            lGrid = new long[4] { 0, 3, 0, 0 };
            // ********** INI - BZG ***************//
            Todas = false;
            Status = 3; //Establece el status actual.
            Tipo = 0; //Establece el tipo actual.
            CargaGrid(dt);
            //FillDataGrid(dt);
            // ********** FIN - BZG ****************//


        }

        void brdEnviando_MouseUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);


            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 2, 0, 0);
            lGrid = new long[4] { 0, 2, 0, 0 };
            // ********** INI - BZG ***************//
            Todas = false;
            Status = 2; //Establece el status actual.
            Tipo = 0; //Establece el tipo actual.
            CargaGrid(dt);
            //FillDataGrid(dt);
            // ********** INI - BZG ***************//





        }

        void brdCancelada_MouseUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 5, 0, 0);
            lGrid = new long[4] { 0, 5, 0, 0 };
            // ********** INI - BZG ***************//
            Todas = false;
            Status = 5; //Establece el status actual.
            Tipo = 0; //Establece el tipo actual.
            CargaGrid(dt);
            //FillDataGrid(dt);
            // ********** FIN - BZG ***************//
        }

        void brdBorradores_MouseUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 1, 0, 0);
            lGrid = new long[4] { 0, 1, 0, 0 };
            // ********** INI - BZG ***************//
            Todas = false;
            Status = 1; //Establece el status actual.
            Tipo = 0; //Establece el tipo actual.
            CargaGrid(dt);
            //FillDataGrid(dt);
            // ********** FIN - BZG **************//
        }

        void brdAprobadas_MouseUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 4, 0, 0);
            lGrid = new long[4] { 0, 4, 0, 0 };
            Todas = false;
            // ********** INI - BZG ***************//
            Status = 4;
            Tipo = 0; //Establece la seccion seleccionada.
            CargaGrid(dt);
            //FillDataGrid(dt);
            // ********** INI - BZG ***************//
        }

        void brdReemplazos_MouseUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 0, 3, 0);
            lGrid = new long[4] { 0, 0, 3, 0 };
            // ********** INI - BZG ***************//
            Todas = false;
            Status = 0;
            Tipo = 3; //Establece la seccion seleccionada.
            CargaGrid(dt);
            //FillDataGrid(dt);
            // ********** FIN - BZG ***************//
        }

        void brdModificaciones_MouseUp(object sender, MouseButtonEventArgs e)
        {
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 0, 2, 0);
            lGrid = new long[4] { 0, 0, 2, 0 };
            // ********** INI - BZG ***************//
            Todas = false;
            Status = 0;
            Tipo = 2; //Establece la seccion seleccionada.
            CargaGrid(dt);
            //FillDataGrid(dt);
            // ********** FIN - BZG ***************//
        }

        void brdAltas_MouseUp(object sender, MouseButtonEventArgs e)
        {
            //Border actual = (Border)sender;
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(false, 0, 1, 0);
            lGrid = new long[4] { 0, 0, 1, 0 };

            // ********** INI - BZG ***************//
            Todas = false;
            Status = 0;
            Tipo = 1; //Establece la seccion seleccionada.
            CargaGrid(dt);
            //FillDataGrid(dt);
            // ********** FIN - BZG ***************//
        }

        void brdTodas_MouseUp(object sender, MouseButtonEventArgs e)
        {
            //Label actual = (Label)sender;
            StackPanel actual = (StackPanel)sender;
            setSelectedLabelStyle(actual);

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(true, 0, 0, 0);
            lGrid = new long[4] { 1, 0, 0, 0 };

            // ********** INI - BZG ***************//
            Todas = true;
            Status = 0;
            Tipo = 0; //Establece la seccion seleccionada.
            CargaGrid(dt);
            //FillDataGrid(dt);
            // ********** FIN - BZG ***************//
        }

        void brdEliminar_MouseUp(object sender, MouseButtonEventArgs e)
        {
            foreach (var child in sPanel.Children)
            {
                //if (child.GetType() == typeof(System.Windows.Controls.DataGrid))
                if (child.GetType() == typeof(System.Windows.Controls.Grid))
                {
                    Grid dg = (Grid)child;
                    ClientsGrid.EliminarRegistros(dg);

                    solicitud.loadCounters();
                    RefreshCounters();
                }
            }//foreach

            Solicitud sol = new Solicitud();
            DataTable dt = sol.GetData(Todas, Status, Tipo, 0);
            lGrid = new long[4] { (Todas)? 1: 0, Status, Tipo, 0 };
            CargaGrid(dt);

        }//end brdEliminar_MouseUp

        #endregion

        private void setSelectedLabelStyle(StackPanel brdactual)//(Border brdactual)//(Label actual)
        {
            StackPanel contenedor = (StackPanel)naviGrid.FindName("NavigationStckPnl");

            
            //Grid contenedor = (Grid)panel.FindName("GridNav");

            //Color test = Color.FromRgb(250, 254, 255);
            Color test = Color.FromRgb(70, 130, 180);
            Color test2 = Color.FromRgb(90, 156, 210);
            string fondo = test.ToString();  //"#FFFFFFFF";

            foreach (var child in contenedor.Children)
                if (child.GetType() == typeof(System.Windows.Controls.StackPanel))
                {
                    StackPanel brd = (StackPanel)child; //Border

                    //INI - BZG - Establede en negro los textos de todas las secciones del panel de navegacion.
                    foreach (var hijo in brd.Children)
                        if (hijo.GetType() == typeof(System.Windows.Controls.Border))
                        {
                            Border childBor = (Border)hijo;
                            TextBlock tx = (TextBlock)VisualTreeHelper.GetChild(childBor, 0);
                            tx.Foreground = Brushes.Black;

                        }
                    //FIN - BZG



                    if (brd.Background != null)
                    {
                        if (brd.Name == "")
                            brd.Background = new System.Windows.Media.SolidColorBrush(Color.FromRgb(219, 219, 219));
                        else
                            if (brd.Name == "BtnTodasStckPnl")
                                brd.Background = new System.Windows.Media.SolidColorBrush(Color.FromRgb(192, 192, 192));
                            else
                                if (brd.Background.ToString() == fondo)
                                    brd.Background = null;    
                    }
                }




            //Border brdactual = (Border)actual.Parent;
            //string name = brdactual.Name;
            //string nameCount = "";

            //switch (name)
            //{
            //    case "BrdTodas":
            //        nameCount = "cntBrdTodas";
            //        break;
            //    case "BrdAltas":
            //        nameCount = "cntBrdAltas";
            //        break;
            //    case "BrdModificaciones":
            //        nameCount = "cntBrdModificaciones";
            //        break;
            //    case "BrdReemplazos":
            //        nameCount = "cntBrdReemplazos";
            //        break;
            //    case "BrdAprobadas":
            //        nameCount = "cntBrdAprobadas";
            //        break;
            //    case "BrdBorradores":
            //        nameCount = "cntBrdBorradores";
            //        break;
            //    case "BrdEnviando":
            //        nameCount = "cntBrdEnviando";
            //        break;
            //    case "BrdProceso":
            //        nameCount = "cntBrdProceso";
            //        break;
            //    case "BrdCancelada":
            //        nameCount = "cntBrdCancelada";
            //        break;
            //    case "BrdRechazada":
            //        nameCount = "cntBrdRechazada";
            //        break;
            //    default:
            //        break;
            //}
           
            //Point p = new Point(0.5,0);
            //Point p2 = new Point(0.5,1);
            //LinearGradientBrush bla = new LinearGradientBrush(test,test2,p,p2);
            //brdactual.Background = bla;
            brdactual.Background = new SolidColorBrush(test);

            //INI - BZG - Establece el texto en blanco del panel seleccionado
            foreach (var child in brdactual.Children)
                if (child.GetType() == typeof(System.Windows.Controls.Border))
                {
                    Border childBor = (Border)child;
                    TextBlock tx = (TextBlock)VisualTreeHelper.GetChild(childBor, 0);
                    tx.Foreground = Brushes.White;
                    
                }
            //FIN - BZG

            //foreach (var child in brdactual.Children)
            //    if (child.GetType() == typeof(System.Windows.Controls.Border))
            //    {
            //        Border childBor = (Border)child; //Border

            //        TextBlock a = (TextBlock)childBor.FindName("lblTodas");
            //        a.Foreground = Brushes.White;
            //        // ((TextBlock)child).Foreground = Brushes.White;
            //    }


            //foreach (var child in contenedor.Children)
            //    if (child.GetType() == typeof(System.Windows.Controls.Border))
            //    {
            //        Border brd = (Border)child;
            //        if (brd.Name == nameCount)
            //            brd.Background = new System.Windows.Media.SolidColorBrush(test);
            //    }
            /*
            foreach (var child in contenedor.Children)
                if (child.GetType() == typeof(System.Windows.Controls.Border))
                {
                    if (((Border)child).Child.GetType() == typeof(System.Windows.Controls.Label))
                    {
                        Label lbl = (Label)((Border)child).Child;

                        lbl.Foreground = new SolidColorBrush(Color.FromRgb(82, 78, 78));
                        lbl.FontWeight = FontWeights.SemiBold;
                    }
                }
            actual.Foreground = new SolidColorBrush(Colors.Crimson);
            actual.FontWeight = FontWeights.DemiBold;
             * */
        }

        /// <summary>
        /// Autor: BZG
        /// </summary>
        /// <param name="dt"></param>
        private void CargaGrid(DataTable dt)
        {
            if (sPanel.Children.Count > 0)
                sPanel.Children.RemoveAt(0); //Elimina el grid Anterior
            Grid dtg = new Grid();
            dtg.Name = "dtgSol";
            DefineColumnasGrid(dtg);
            DefineHeader(dtg);
            CargaRenglones(dtg, dt);
            sPanel.Children.Add(dtg);
        }

        private void FillDataGrid(DataTable dt)
        {
            List<Features> feat = CreateFeaturesList();

            foreach (var child in sPanel.Children)
            {
                if (child.GetType() == typeof(System.Windows.Controls.DataGrid))
                {
                    DataGrid dg = (DataGrid)child;
                    ClientsGrid.BindData(dg, dt, feat);


                }
            }//foreach
        }// FillDataGrid


        /// <summary>
        /// Crea la lista de características para las columnas del Grid
        /// </summary>
        /// <returns>Lista de características</returns>
        private static List<Features> CreateFeaturesList()
        {
            Features id = new Features() { Visible = false, Image = false, Name = "ID" };
            Features prioridad = new Features() { Visible = false, Image = true, Name = "PRIORIDAD" };
            Features tipo = new Features() { Visible = true, Image = false, Name = "TIPO SOL" };
            Features persona = new Features() { Visible = true, Image = false, Name = "PERSONA" };
            Features rfc = new Features() { Visible = true, Image = false, Name = "RAZON SOCIAL" };
            Features status = new Features() { Visible = true, Image = false, Name = "STATUS" };
            Features creacion = new Features() { Visible = true, Image = false, Name = "CREACION" };

            List<Features> caracteristicas = new List<Features> { id, prioridad, tipo, persona, rfc, status, creacion };
            return caracteristicas;
        }

        /// <summary>
        /// Event Handler del botón para eliminar registros del Grid
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void btnEliminar_Click(object sender, RoutedEventArgs e)
        {
            foreach (var child in sPanel.Children)
            {
                if (child.GetType() == typeof(System.Windows.Controls.DataGrid))
                {
                    DataGrid dg = (DataGrid)child;
                    ClientsGrid.DeleteRows(dg);
                }
            }

        }//end 


        //Evento realizado al hacer clic en Nueva
        private void brdNueva_MouseUp(object sender, MouseButtonEventArgs e)
        {
            Nueva.PlacementTarget = (Border)sender;
            Nueva.Placement = System.Windows.Controls.Primitives.PlacementMode.Bottom;
            Nueva.IsOpen = true;
        }

        //------ Botón alta en el panel de Acción ---------------//


        private void lbAlta_MouseUp(object sender, MouseButtonEventArgs e)
        {
            alta = new UINuevaSolicitud(PanelAccion, PanelNavegacion, PanelCentral);
            alta.llamarArchivos(Convert.ToInt32(alta.lbl_idTipo.Content), alta.cTipoSolicitud.SelectedValue.ToString(), alta.cPersona.SelectedValue.ToString());
            alta.cTipoSolicitud.SelectionChanged += new SelectionChangedEventHandler(alta.cTipoSolicitud_SelectionChanged);
            alta.cPersona.SelectionChanged += new SelectionChangedEventHandler(alta.cPersona_SelectionChanged);
            alta.chMismoDom.Click += new RoutedEventHandler(alta.chMismoDom_Click);
        }

        private void lbModificacion_MouseUp(object sender, MouseButtonEventArgs e)
        {
            Mouse.OverrideCursor = Cursors.Wait;
            modificar = new UIModificaciones(PanelAccion, PanelNavegacion, PanelCentral);
            modificar.llamarArchivos(1, "99999", "99999");
            modificar.cTipoSolicitud.SelectionChanged += new SelectionChangedEventHandler(modificar.cTipoSolicitud_SelectionChanged);
            modificar.cPersona.SelectionChanged += new SelectionChangedEventHandler(modificar.cPersona_SelectionChanged);
            modificar.chMismoDom.Click += new RoutedEventHandler(modificar.chMismoDom_Click);
            Mouse.OverrideCursor = null;
        }


        private void lbReemplazo_MouseUp(object sender, MouseButtonEventArgs e)
        {
            reemplazar = new UIReemplazos(PanelAccion, PanelNavegacion, PanelCentral);
            reemplazar.llamarArchivos(Convert.ToInt32(reemplazar.lbl_idTipo.Content), reemplazar.cTipoSolicitud.SelectedValue.ToString(), reemplazar.cPersona.SelectedValue.ToString());
            reemplazar.cTipoSolicitud.SelectionChanged += new SelectionChangedEventHandler(reemplazar.cTipoSolicitud_SelectionChanged);
            reemplazar.cPersona.SelectionChanged += new SelectionChangedEventHandler(reemplazar.cPersona_SelectionChanged);
            reemplazar.chMismoDom.Click += new RoutedEventHandler(reemplazar.chMismoDom_Click);
        }



        public void EventosPanelAcciones()
        {

        }


        //Llena el Panel de navegación
        public void EventosPanelNavegacion()
        {

        }

        private void lbTodas_MouseUp(object sender, MouseButtonEventArgs e)
        {
            //Lo que debe hacer después de darle click a la etiqueta Todas
        }

        public void EventosPanelCentral()
        {
            //Lo que debe hacer para que se refleje en el panel central        
        }


        public void cargarSolicitud(string op, Solicitud SolActual)
        {
            DataTable dt;
            switch (op)
            {
                case "1":
                    alta = new UINuevaSolicitud(PanelAccion, PanelNavegacion, PanelCentral);

                    if (SolActual.dsSolicitud.Tables[10].Rows.Count != 0) alta.txtBlockStatus.Text = SolActual.dsSolicitud.Tables[10].Rows[0]["DSC_SOLICITUD_STATUS"].ToString();
                    alta.lbl_unidSol.Content = SolActual.Unid_solicitud;
                    alta.lbl_unidDatgral.Content = SolActual.Unid_datosgral;
                    alta.lbl_unidDirFiscal.Content = SolActual.Unid_dirfiscal;
                    alta.lbl_unidDirEntrega.Content = SolActual.Unid_direntrega;
                    alta.lbl_unidRFV.Content = SolActual.Unid_rfv;
                    alta.lbl_unidDPV.Content = SolActual.Unid_dpv;
                    alta.lbl_unidInfoad.Content = SolActual.Unid_infoad;
                    alta.lbl_unidBanc.Content = SolActual.Unid_datosbanc;
                    alta.lbl_unidDocinfo.Content = SolActual.Unid_docinfo;
                    alta.lbl_unidInterlocutores.Content = SolActual.Unid_interlocutores;
                    alta.lbl_unidWf.Content = SolActual.Unid_wf;
                    alta.lbl_unidDocumentos.Content = SolActual.Unid_documentos;
                    alta.lbl_unidDatos.Content = SolActual.Unid_datos;
                    alta.lbl_idPrioridad.Content = SolActual.Id_prioridad;
                    alta.lbl_idStatus.Content = SolActual.Id_status;
                    alta.lbl_idTipo.Content = SolActual.Id_tipo;
                    alta.setImagenPrioridad();


                    if (SolActual.dsSolicitud.Tables[1].Rows.Count != 0)
                    {



                        alta.cTipoSolicitud.SelectedValue = SolActual.dsSolicitud.Tables[1].Rows[0]["UNID_TIPO_SOLICITANTE"].ToString();

                        string mismoDom = SolActual.dsSolicitud.Tables[1].Rows[0]["IS_MISMO_DOMICILIO"].ToString();

                        if (mismoDom == "True")
                        {
                            alta.chMismoDom.IsChecked = true;
                            alta.tCalleEntrega.Text = alta.tCalle.Text;
                            alta.tNoExtEntrega.Text = alta.tNoExterior.Text;
                            alta.tNoInEntrega.Text = alta.tNoInterior.Text;
                            alta.tCoPoEntrega.Text = alta.tCodigoPostal.Text;
                            alta.tEdoEntrega.Text = alta.tEstado.Text;
                            alta.tDelMunEnt.Text = alta.tDelMunicipio.Text;

                            alta.tLadaEntrega.Text = alta.tLada.Text;
                            alta.tTelEnt.Text = alta.tTelFiscal.Text;

                            alta.gdDirEntrega.Background = new SolidColorBrush(Colors.Gainsboro);

                            if (SolActual.dsSolicitud.Tables[5].Rows.Count != 0)
                            {
                                dt = Sepomex.GetColonia(SolActual.dsSolicitud.Tables[5].Rows[0]["CODIGO_POSTAL"].ToString());
                                alta.cargarcombos(alta.cColoniaDistrito, dt, "COLONIA", "ID_COLONIA");
                                alta.cColoniaDistrito.IsEnabled = true;

                                alta.cargarcombos(alta.cColDisEntrega, dt, "COLONIA", "ID_COLONIA");
                                //alta.cColDisEntrega.SelectedIndex = alta.cColoniaDistrito.SelectedIndex;
                                alta.gdDirEntrega.IsEnabled = false;

                                dt = Sepomex.getLocalidad(SolActual.dsSolicitud.Tables[5].Rows[0]["ID_ESTADO"].ToString(), SolActual.dsSolicitud.Tables[5].Rows[0]["ID_MUNICIPIO"].ToString());
                                alta.cargarcombos(alta.cLocalidad, dt, "LOCALIDAD", "UNID_LOCALIDAD");

                                alta.cargarcombos(alta.cLocalidadEnt, dt, "LOCALIDAD", "UNID_LOCALIDAD");
                                alta.cLocalidad.IsEnabled = true;
                            }
                        }

                        else
                        {
                            alta.chMismoDom.IsChecked = false;
                            //alta.gdDirEntrega.Background = new SolidColorBrush(Colors.Gainsboro);
                            //alta.gdDirEntrega.IsEnabled = false;

                            if (SolActual.dsSolicitud.Tables[4].Rows.Count != 0)
                            {
                                dt = Sepomex.GetColonia(SolActual.dsSolicitud.Tables[4].Rows[0]["CODIGO_POSTAL"].ToString());
                                alta.cargarcombos(alta.cColDisEntrega, dt, "COLONIA", "ID_COLONIA");
                                alta.cColDisEntrega.IsEnabled = true;

                                dt = Sepomex.getLocalidad(SolActual.dsSolicitud.Tables[4].Rows[0]["ID_ESTADO"].ToString(), SolActual.dsSolicitud.Tables[4].Rows[0]["ID_MUNICIPIO"].ToString());
                                alta.cargarcombos(alta.cLocalidadEnt, dt, "LOCALIDAD", "UNID_LOCALIDAD");
                                alta.cLocalidadEnt.IsEnabled = true;
                            }
                            if (SolActual.dsSolicitud.Tables[5].Rows.Count != 0)
                            {
                                dt = Sepomex.GetColonia(SolActual.dsSolicitud.Tables[5].Rows[0]["CODIGO_POSTAL"].ToString());
                                alta.cargarcombos(alta.cColoniaDistrito, dt, "COLONIA", "ID_COLONIA");
                                alta.cColoniaDistrito.IsEnabled = true;

                                dt = Sepomex.getLocalidad(SolActual.dsSolicitud.Tables[5].Rows[0]["ID_ESTADO"].ToString(), SolActual.dsSolicitud.Tables[5].Rows[0]["ID_MUNICIPIO"].ToString());
                                alta.cargarcombos(alta.cLocalidad, dt, "LOCALIDAD", "UNID_LOCALIDAD");
                                alta.cLocalidad.IsEnabled = true;
                            }

                        }

                        alta.cPersona.SelectedValue = SolActual.dsSolicitud.Tables[1].Rows[0]["ID_TIPO_PERSONA_FISCAL"].ToString();

                        string proveedor = SolActual.dsSolicitud.Tables[1].Rows[0]["IS_PROVEEDOR"].ToString();
                        if (proveedor == "True")
                        { alta.chProveedor.IsChecked = true; }
                        else { alta.chProveedor.IsChecked = false; }

                        string categorias = SolActual.dsSolicitud.Tables[1].Rows[0]["IS_OTRAS_CATEGORIAS"].ToString();
                        if (categorias == "True")
                        { alta.chOtrasCateg.IsChecked = true; }
                        else { alta.chOtrasCateg.IsChecked = false; }


                        string clientes = SolActual.dsSolicitud.Tables[1].Rows[0]["IS_OTROS_CLIENTES"].ToString();

                        if (clientes == "True")
                        { alta.chOtrosClientes.IsChecked = true; }
                        else { alta.chOtrosClientes.IsChecked = false; }

                    }
                    //else
                    //    alta.llamarArchivos(1, alta.cTipoSolicitud.SelectedValue.ToString(), alta.cPersona.SelectedValue.ToString());

                    if (SolActual.dsSolicitud.Tables[2].Rows.Count != 0)
                    {
                        //---Datos gral-----//-
                        alta.cTipoNegocios.SelectedValue = SolActual.dsSolicitud.Tables[2].Rows[0]["ID_TIPO_NEGOCIO"].ToString();
                        alta.tRazonSocial.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["RAZON_SOCIAL"].ToString();
                        alta.tRFC.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["RFC"].ToString();
                        alta.tEmail.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["CORREO"].ToString();
                        alta.tNombreSucursal.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["NOMBRE_SUCURSAL"].ToString();
                        alta.tNumeroSucursal.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["NUMERO_SUCURSAL"].ToString();
                        if (SolActual.dsSolicitud.Tables[2].Rows[0]["ID_GRUPOCLIENTES4"].ToString() != "")
                            alta.cGrupoClientes4.SelectedValue = SolActual.dsSolicitud.Tables[2].Rows[0]["ID_GRUPOCLIENTES4"].ToString();
                    }
                    if (SolActual.dsSolicitud.Tables[5].Rows.Count != 0)
                    {   //-----Direccion fiscal----//
                        alta.tCalle.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["CALLE"].ToString();
                        alta.tNoExterior.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["NUMERO_EXTERIOR"].ToString();
                        alta.tNoInterior.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["NUMERO_INTERIOR"].ToString();
                        alta.tLada.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["LADA"].ToString();
                        alta.tTelFiscal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["TELEFONO"].ToString();
                        alta.tCodigoPostal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["CODIGO_POSTAL"].ToString();
                        alta.cColoniaDistrito.SelectedValue = SolActual.dsSolicitud.Tables[5].Rows[0]["ID_COLONIA"].ToString();
                        alta.tEstado.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["ESTADO"].ToString();
                        alta.tDelMunicipio.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["MUNICIPIO"].ToString();
                        if (SolActual.dsSolicitud.Tables[5].Rows[0]["UNID_LOCALIDAD"].ToString() != "")
                            alta.cLocalidad.SelectedValue = SolActual.dsSolicitud.Tables[5].Rows[0]["UNID_LOCALIDAD"].ToString();
                        alta.tbTelExtFiscal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["TEL_EXTENS"].ToString();
                        alta.tbFaxFiscal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["FAX_NUMBER"].ToString();
                        alta.tbFaxExtFiscal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["FAX_EXTENS"].ToString();

                    }

                    if (SolActual.dsSolicitud.Tables[4].Rows.Count != 0)
                    {   //---Direccion de Entrega---//
                        alta.tCalleEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["CALLE"].ToString();
                        alta.tNoExtEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["NUMERO_EXTERIOR"].ToString();
                        alta.tNoInEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["NUMERO_INTERIOR"].ToString();
                        alta.tLadaEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["LADA"].ToString();
                        alta.tTelEnt.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["TELEFONO"].ToString();
                        alta.tCoPoEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["CODIGO_POSTAL"].ToString();
                        alta.cColDisEntrega.SelectedValue = SolActual.dsSolicitud.Tables[4].Rows[0]["ID_COLONIA"].ToString();
                        alta.tEdoEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["ESTADO"].ToString();
                        alta.tDelMunEnt.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["MUNICIPIO"].ToString();
                        if (SolActual.dsSolicitud.Tables[4].Rows[0]["UNID_LOCALIDAD"].ToString() != "")
                            alta.cLocalidadEnt.SelectedValue = SolActual.dsSolicitud.Tables[4].Rows[0]["UNID_LOCALIDAD"].ToString();
                        alta.tbFaxEnt.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["FAX_NUMBER"].ToString();
                        alta.tbFaxExtEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["FAX_EXTENS"].ToString();
                        alta.tbTelExtEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["TEL_EXTENS"].ToString();

                    }

                    if (SolActual.dsSolicitud.Tables[9].Rows.Count != 0)
                    {
                        alta.cTerritorio.SelectedValue = SolActual.dsSolicitud.Tables[9].Rows[0]["TERRITORIO"].ToString();
                        alta.tGerencia.Text = SolActual.dsSolicitud.Tables[9].Rows[0]["GERENCIA"].ToString();
                        alta.tNoClo.Text = SolActual.dsSolicitud.Tables[9].Rows[0]["CODIGO"].ToString();
                        alta.cCenLog.SelectedValue = SolActual.dsSolicitud.Tables[9].Rows[0]["ID_CLO"].ToString();
                        alta.cLeadTime.SelectedValue = SolActual.dsSolicitud.Tables[9].Rows[0]["ID_LEADTIME"].ToString();


                        if (alta.chOtrosClientes.IsChecked == false)
                            alta.cTerritorio.IsEnabled = false;
                        else
                            alta.cTerritorio.IsEnabled = true;

                    }

                    //Faltaba tabla Información Adicional
                    if (SolActual.dsSolicitud.Tables[13].Rows.Count != 0)
                    {
                        alta.tRespoFV.Text = SolActual.dsSolicitud.Tables[13].Rows[0]["RESPONSABLE_FDV"].ToString();
                        alta.tNoEmpleado.Text = SolActual.dsSolicitud.Tables[13].Rows[0]["NUM_EMPLEADO"].ToString();
                    }
                    if (SolActual.dsSolicitud.Tables[3].Rows.Count != 0)
                    {
                        alta.cClaveBanco.SelectedItem = SolActual.dsSolicitud.Tables[3].Rows[0]["ID_BANCO"].ToString();
                        alta.tCuentaBancaria.Text = SolActual.dsSolicitud.Tables[3].Rows[0]["CTA_BANCARIA"].ToString();
                        alta.tSucursal.Text = SolActual.dsSolicitud.Tables[3].Rows[0]["SUCURSAL"].ToString();

                        foreach (var item in alta.cClaveBanco.Items)
                        {
                            DataRowView drv = (DataRowView)item;
                            if (drv.Row[0].ToString().Trim() == SolActual.dsSolicitud.Tables[3].Rows[0]["ID_BANCO"].ToString().Trim())
                                alta.cClaveBanco.SelectedItem = item;
                        }

                    }
                    dt = null;

                    if (SolActual.dsSolicitud.Tables[14].Rows.Count != 0)
                    {
                        alta.tNomDPV.Text = SolActual.dsSolicitud.Tables[14].Rows[0]["NOMBRE"].ToString();
                        alta.tTelDPV.Text = SolActual.dsSolicitud.Tables[14].Rows[0]["TELEFONO"].ToString();
                        alta.tTitulo.Text = SolActual.dsSolicitud.Tables[14].Rows[0]["TITULO"].ToString();
                        alta.tMailDPV.Text = SolActual.dsSolicitud.Tables[14].Rows[0]["CORREO"].ToString();
                        alta.cZona.SelectedValue = SolActual.dsSolicitud.Tables[14].Rows[0]["ID_ZONA"].ToString();
                        alta.cMedioColoca.SelectedValue = SolActual.dsSolicitud.Tables[14].Rows[0]["ID_MED_COLOCACION"].ToString();
                        alta.cFrecuencia.SelectedValue = SolActual.dsSolicitud.Tables[14].Rows[0]["ID_FRECUENCIA"].ToString();
                        dt = getIva.GetIva(alta.cZona.SelectedValue.ToString());
                        if (dt.Rows.Count != 0)
                        {
                            alta.tIVA.Text = dt.Rows[0]["IVA_VAL"].ToString();
                            alta.tIVA.IsEnabled = false;
                        }
                        dt = Zona.GetData(alta.cTipoNegocios.SelectedValue.ToString());
                        if (dt.Rows.Count != 0)
                            alta.lbl_GrupoPrecios.Content = dt.Rows[0][alta.cZona.Text.ToString()].ToString();
                        string diasc = SolActual.dsSolicitud.Tables[14].Rows[0]["DIAS_COLOCACION"].ToString();
                        string diase = SolActual.dsSolicitud.Tables[14].Rows[0]["DIAS_ENTREGA"].ToString();
                        char[] delimiterChars = { ',', '\t' };

                        string[] losdiasc = diasc.Split(delimiterChars);
                        if (losdiasc[0] == "1") alta.chDiaCL.IsChecked = true;
                        if (losdiasc[1] == "1") alta.chDiaCM.IsChecked = true;
                        if (losdiasc[2] == "1") alta.chDiaCMi.IsChecked = true;
                        if (losdiasc[3] == "1") alta.chDiaCJ.IsChecked = true;
                        if (losdiasc[4] == "1") alta.chDiaCV.IsChecked = true;
                        if (losdiasc[5] == "1") alta.chDiaCS.IsChecked = true;
                    }

                    alta.cPersona.SelectionChanged += new SelectionChangedEventHandler(alta.cPersona_SelectionChanged);
                    alta.cTipoSolicitud.SelectionChanged += new SelectionChangedEventHandler(alta.cTipoSolicitud_SelectionChanged);
                    alta.chMismoDom.Click += new RoutedEventHandler(alta.chMismoDom_Click);

                    alta.SolicitudDocs = SolActual.dsSolicitud.Tables[0].Rows[0]["UNID_SOLICITUD_DOCUMENTOS"].ToString();
                    alta.Cperso = alta.cPersona.SelectedValue.ToString();
                    alta.Ctiposol = alta.cTipoSolicitud.SelectedValue.ToString();
                    alta.Check = alta.CheckMismoDomicilio;
                    alta.ft = 1;
                    alta.llamarArchivos(Convert.ToInt32(alta.lbl_idTipo.Content), alta.cTipoSolicitud.SelectedValue.ToString(), alta.cPersona.SelectedValue.ToString());
                    alta.llenarUnidsDocumentosPop(SolActual.Unid_solicitud);
                    alta.tRFC.MaxLength = (((DataRowView)(((Selector)(alta.cPersona)).SelectedItem)).Row["DSC_TIPO_PERSONA_FISCAL"].ToString() == "moral") ? 12 : 13;
                    //alta.setLengthRFC();

                    if (SolActual.Id_status > 1 && SolActual.Id_status != 6)
                    {
                        alta.spAlta.IsEnabled = false;
                        alta.spPrioridades.IsEnabled = false;
                        alta.bdPrioridad.MouseUp -= new MouseButtonEventHandler(alta.bdPrioridad_MouseUp);
                        alta.bdPrioridad.Cursor = Cursors.Arrow;
                        alta.popPrioridad.IsOpen = false;
                        alta.BloqueoMenus(false);
                    }
                    alta.PanelCentral.ScrollToVerticalOffset(0);
                    break;

                case "2":
                    UIModificaciones modif = new UIModificaciones(PanelAccion, PanelNavegacion, PanelCentral);
                    if (SolActual.dsSolicitud.Tables[10].Rows.Count != 0) modif.txtBlockStatus.Text = SolActual.dsSolicitud.Tables[10].Rows[0]["DSC_SOLICITUD_STATUS"].ToString();
                    modif.lbl_unidSol.Content = SolActual.Unid_solicitud;
                    modif.lbl_unidDatgral.Content = SolActual.Unid_datosgral;
                    modif.lbl_unidDirFiscal.Content = SolActual.Unid_dirfiscal;
                    modif.txt_numeroCliente.Text = SolActual.NumeroCliente;
                    modif.lbl_unidDocinfo.Content = SolActual.Unid_docinfo;
                    modif.lbl_unidDocumentos.Content = SolActual.Unid_documentos;
                    modif.lbl_unidDatos.Content = SolActual.Unid_datos;
                    modif.lbl_idPrioridad.Content = SolActual.Id_prioridad;
                    modif.lbl_idStatus.Content = SolActual.Id_status;
                    modif.lbl_idTipo.Content = SolActual.Id_tipo;
                    modif.txt_numeroCliente.Text = SolActual.NumeroCliente;
                    modif.setImagenPrioridad();

                    if (SolActual.dsSolicitud.Tables[2].Rows.Count != 0)
                    {
                        modif.tRazonSocial.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["RAZON_SOCIAL"].ToString();
                        modif.tRFC.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["RFC"].ToString();
                        modif.tRFC_LostFocus(modif.tRFC, null);
                        modif.tEmail.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["CORREO"].ToString();
                    }
                    if (SolActual.dsSolicitud.Tables[5].Rows.Count != 0)
                    {
                        modif.tCalle.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["CALLE"].ToString();
                        modif.tNoExterior.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["NUMERO_EXTERIOR"].ToString();
                        modif.tNoInterior.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["NUMERO_INTERIOR"].ToString();
                        modif.tLada.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["LADA"].ToString();
                        modif.tTelFiscal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["TELEFONO"].ToString();
                        modif.tCodigoPostal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["CODIGO_POSTAL"].ToString();
                        modif.tCodigoPostal_LostFocus(modif.tCodigoPostal, null);
                        modif.cColoniaDistrito.SelectedValue = SolActual.dsSolicitud.Tables[5].Rows[0]["ID_COLONIA"].ToString();
                        modif.tEstado.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["ESTADO"].ToString();
                        modif.tDelMunicipio.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["MUNICIPIO"].ToString();
                        if (SolActual.dsSolicitud.Tables[5].Rows[0]["UNID_LOCALIDAD"].ToString() != "")
                            modif.cLocalidad.SelectedValue = SolActual.dsSolicitud.Tables[5].Rows[0]["UNID_LOCALIDAD"].ToString();
                        modif.tbTelExtFiscal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["TEL_EXTENS"].ToString();
                        modif.tbFaxFiscal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["FAX_NUMBER"].ToString();
                        modif.tbFaxExtFiscal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["FAX_EXTENS"].ToString();
                    }
                    modif.ControlesModificacionActivar(true);
                    modif.cPersona.SelectionChanged += new SelectionChangedEventHandler(modif.cPersona_SelectionChanged);

                    modif.SolicitudDocs = SolActual.dsSolicitud.Tables[0].Rows[0]["UNID_SOLICITUD_DOCUMENTOS"].ToString();
                    modif.Cperso = modif.cPersona.SelectedValue.ToString();
                    modif.Ctiposol = modif.cTipoSolicitud.SelectedValue.ToString();
                    modif.ft = 1;
                    modif.tRFC_SetPersona(modif.tRFC.Text.Length);
                    modif.llamarArchivos(Convert.ToInt32(modif.lbl_idTipo.Content), modif.cTipoSolicitud.SelectedValue.ToString(), modif.cPersona.SelectedValue.ToString());
                    modif.llenarUnidsDocumentosPop(SolActual.Unid_solicitud);

                    if (SolActual.Id_status > 1 && SolActual.Id_status != 6)
                    {
                        modif.spAlta.IsEnabled = false;
                        modif.spPrioridades.IsEnabled = false;
                        modif.bdPrioridad.MouseUp -= new MouseButtonEventHandler(modif.bdPrioridad_MouseUp);
                        modif.bdPrioridad.Cursor = Cursors.Arrow;
                        modif.popPrioridad.IsOpen = false;
                        modif.BloqueoMenus(false);
                    }
                    modif.PanelCentral.ScrollToVerticalOffset(0);
                    break;

                case "3":
                    #region REEMPLAZOS
                    UIReemplazos reemp = new UIReemplazos(PanelAccion, PanelNavegacion, PanelCentral);

                    if (SolActual.dsSolicitud.Tables[10].Rows.Count != 0) reemp.txtBlockStatus.Text = SolActual.dsSolicitud.Tables[10].Rows[0]["DSC_SOLICITUD_STATUS"].ToString();
                    reemp.lbl_unidSol.Content = SolActual.Unid_solicitud;
                    reemp.lbl_unidDatgral.Content = SolActual.Unid_datosgral;
                    reemp.lbl_unidDirFiscal.Content = SolActual.Unid_dirfiscal;
                    reemp.lbl_unidDirEntrega.Content = SolActual.Unid_direntrega;
                    reemp.lbl_unidRFV.Content = SolActual.Unid_rfv;
                    reemp.lbl_unidDPV.Content = SolActual.Unid_dpv;
                    reemp.lbl_unidInfoad.Content = SolActual.Unid_infoad;
                    reemp.lbl_unidBanc.Content = SolActual.Unid_datosbanc;
                    reemp.lbl_unidDocinfo.Content = SolActual.Unid_docinfo;
                    reemp.lbl_unidInterlocutores.Content = SolActual.Unid_interlocutores;
                    reemp.lbl_unidWf.Content = SolActual.Unid_wf;
                    reemp.lbl_unidDocumentos.Content = SolActual.Unid_documentos;
                    reemp.lbl_unidDatos.Content = SolActual.Unid_datos;
                    reemp.lbl_idPrioridad.Content = SolActual.Id_prioridad;
                    reemp.lbl_idStatus.Content = SolActual.Id_status;
                    reemp.lbl_idTipo.Content = SolActual.Id_tipo;
                    reemp.txt_nombreCliente.Text = SolActual.NombreCliente;
                    reemp.txt_numeroCliente.Text = SolActual.NumeroCliente;
                    reemp.setImagenPrioridad();

                    if (SolActual.dsSolicitud.Tables[1].Rows.Count != 0)
                    {
                        reemp.cTipoSolicitud.SelectedValue = SolActual.dsSolicitud.Tables[1].Rows[0]["UNID_TIPO_SOLICITANTE"].ToString();

                        string mismoDom = SolActual.dsSolicitud.Tables[1].Rows[0]["IS_MISMO_DOMICILIO"].ToString();

                        if (mismoDom == "True")
                        {
                            reemp.chMismoDom.IsChecked = true;
                            reemp.tCalleEntrega.Text = reemp.tCalle.Text;
                            reemp.tNoExtEntrega.Text = reemp.tNoExterior.Text;
                            reemp.tNoInEntrega.Text = reemp.tNoInterior.Text;
                            reemp.tCoPoEntrega.Text = reemp.tCodigoPostal.Text;
                            reemp.tEdoEntrega.Text = reemp.tEstado.Text;
                            reemp.tDelMunEnt.Text = reemp.tDelMunicipio.Text;

                            reemp.tLadaEntrega.Text = reemp.tLada.Text;
                            reemp.tTelEnt.Text = reemp.tTelFiscal.Text;

                            reemp.gdDirEntrega.Background = new SolidColorBrush(Colors.Gainsboro);

                            if (SolActual.dsSolicitud.Tables[5].Rows.Count != 0)
                            {
                                dt = Sepomex.GetColonia(SolActual.dsSolicitud.Tables[5].Rows[0]["CODIGO_POSTAL"].ToString());
                                reemp.cargarcombos(reemp.cColoniaDistrito, dt, "COLONIA", "ID_COLONIA");
                                reemp.cColoniaDistrito.IsEnabled = true;

                                reemp.cargarcombos(reemp.cColDisEntrega, dt, "COLONIA", "ID_COLONIA");
                                //reemp.cColDisEntrega.SelectedIndex = reemp.cColoniaDistrito.SelectedIndex;
                                reemp.gdDirEntrega.IsEnabled = false;

                                dt = Sepomex.getLocalidad(SolActual.dsSolicitud.Tables[5].Rows[0]["ID_ESTADO"].ToString(), SolActual.dsSolicitud.Tables[5].Rows[0]["ID_MUNICIPIO"].ToString());
                                reemp.cargarcombos(reemp.cLocalidad, dt, "LOCALIDAD", "UNID_LOCALIDAD");

                                reemp.cargarcombos(reemp.cLocalidadEnt, dt, "LOCALIDAD", "UNID_LOCALIDAD");
                                reemp.cLocalidad.IsEnabled = true;
                            }
                        }

                        else
                        {
                            reemp.chMismoDom.IsChecked = false;
                            //reemp.gdDirEntrega.Background = new SolidColorBrush(Colors.Gainsboro);
                            //reemp.gdDirEntrega.IsEnabled = false;

                            if (SolActual.dsSolicitud.Tables[4].Rows.Count != 0)
                            {
                                dt = Sepomex.GetColonia(SolActual.dsSolicitud.Tables[4].Rows[0]["CODIGO_POSTAL"].ToString());
                                reemp.cargarcombos(reemp.cColDisEntrega, dt, "COLONIA", "ID_COLONIA");
                                reemp.cColDisEntrega.IsEnabled = true;

                                dt = Sepomex.getLocalidad(SolActual.dsSolicitud.Tables[4].Rows[0]["ID_ESTADO"].ToString(), SolActual.dsSolicitud.Tables[4].Rows[0]["ID_MUNICIPIO"].ToString());
                                reemp.cargarcombos(reemp.cLocalidadEnt, dt, "LOCALIDAD", "UNID_LOCALIDAD");
                                reemp.cLocalidadEnt.IsEnabled = true;
                            }
                            if (SolActual.dsSolicitud.Tables[5].Rows.Count != 0)
                            {
                                dt = Sepomex.GetColonia(SolActual.dsSolicitud.Tables[5].Rows[0]["CODIGO_POSTAL"].ToString());
                                reemp.cargarcombos(reemp.cColoniaDistrito, dt, "COLONIA", "ID_COLONIA");
                                reemp.cColoniaDistrito.IsEnabled = true;

                                dt = Sepomex.getLocalidad(SolActual.dsSolicitud.Tables[5].Rows[0]["ID_ESTADO"].ToString(), SolActual.dsSolicitud.Tables[5].Rows[0]["ID_MUNICIPIO"].ToString());
                                reemp.cargarcombos(reemp.cLocalidad, dt, "LOCALIDAD", "UNID_LOCALIDAD");
                                reemp.cLocalidad.IsEnabled = true;
                            }

                        }

                        reemp.cPersona.SelectedValue = SolActual.dsSolicitud.Tables[1].Rows[0]["ID_TIPO_PERSONA_FISCAL"].ToString();

                        string proveedor = SolActual.dsSolicitud.Tables[1].Rows[0]["IS_PROVEEDOR"].ToString();
                        if (proveedor == "True")
                        { reemp.chProveedor.IsChecked = true; }
                        else { reemp.chProveedor.IsChecked = false; }

                        string categorias = SolActual.dsSolicitud.Tables[1].Rows[0]["IS_OTRAS_CATEGORIAS"].ToString();
                        if (categorias == "True")
                        { reemp.chOtrasCateg.IsChecked = true; }
                        else { reemp.chOtrasCateg.IsChecked = false; }


                        string clientes = SolActual.dsSolicitud.Tables[1].Rows[0]["IS_OTROS_CLIENTES"].ToString();

                        if (clientes == "True")
                        { reemp.chOtrosClientes.IsChecked = true; }
                        else { reemp.chOtrosClientes.IsChecked = false; }

                    }
                    //else
                    //    reemp.llamarArchivos(1, reemp.cTipoSolicitud.SelectedValue.ToString(), reemp.cPersona.SelectedValue.ToString());

                    if (SolActual.dsSolicitud.Tables[2].Rows.Count != 0)
                    {
                        //---Datos gral-----//-
                        reemp.cTipoNegocios.SelectedValue = SolActual.dsSolicitud.Tables[2].Rows[0]["ID_TIPO_NEGOCIO"].ToString();
                        reemp.tRazonSocial.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["RAZON_SOCIAL"].ToString();
                        reemp.tRFC.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["RFC"].ToString();
                        reemp.tEmail.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["CORREO"].ToString();
                        reemp.tNombreSucursal.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["NOMBRE_SUCURSAL"].ToString();
                        reemp.tNumeroSucursal.Text = SolActual.dsSolicitud.Tables[2].Rows[0]["NUMERO_SUCURSAL"].ToString();
                        if (SolActual.dsSolicitud.Tables[2].Rows[0]["ID_GRUPOCLIENTES4"].ToString() != "")
                            reemp.cGrupoClientes4.SelectedValue = SolActual.dsSolicitud.Tables[2].Rows[0]["ID_GRUPOCLIENTES4"].ToString();
                    }
                    if (SolActual.dsSolicitud.Tables[5].Rows.Count != 0)
                    {   //-----Direccion fiscal----//
                        reemp.tCalle.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["CALLE"].ToString();
                        reemp.tNoExterior.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["NUMERO_EXTERIOR"].ToString();
                        reemp.tNoInterior.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["NUMERO_INTERIOR"].ToString();
                        reemp.tLada.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["LADA"].ToString();
                        reemp.tTelFiscal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["TELEFONO"].ToString();
                        reemp.tCodigoPostal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["CODIGO_POSTAL"].ToString();
                        reemp.cColoniaDistrito.SelectedValue = SolActual.dsSolicitud.Tables[5].Rows[0]["ID_COLONIA"].ToString();
                        reemp.tEstado.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["ESTADO"].ToString();
                        reemp.tDelMunicipio.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["MUNICIPIO"].ToString();
                        if (SolActual.dsSolicitud.Tables[5].Rows[0]["UNID_LOCALIDAD"].ToString() != "")
                            reemp.cLocalidad.SelectedValue = SolActual.dsSolicitud.Tables[5].Rows[0]["UNID_LOCALIDAD"].ToString();
                        reemp.tbTelExtFiscal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["TEL_EXTENS"].ToString();
                        reemp.tbFaxFiscal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["FAX_NUMBER"].ToString();
                        reemp.tbFaxExtFiscal.Text = SolActual.dsSolicitud.Tables[5].Rows[0]["FAX_EXTENS"].ToString();
                    }

                    if (SolActual.dsSolicitud.Tables[4].Rows.Count != 0)
                    {   //---Direccion de Entrega---//
                        reemp.tCalleEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["CALLE"].ToString();
                        reemp.tNoExtEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["NUMERO_EXTERIOR"].ToString();
                        reemp.tNoInEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["NUMERO_INTERIOR"].ToString();
                        reemp.tLadaEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["LADA"].ToString();
                        reemp.tTelEnt.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["TELEFONO"].ToString();
                        reemp.tCoPoEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["CODIGO_POSTAL"].ToString();
                        reemp.cColDisEntrega.SelectedValue = SolActual.dsSolicitud.Tables[4].Rows[0]["ID_COLONIA"].ToString();
                        reemp.tEdoEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["ESTADO"].ToString();
                        reemp.tDelMunEnt.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["MUNICIPIO"].ToString();
                        if (SolActual.dsSolicitud.Tables[4].Rows[0]["UNID_LOCALIDAD"].ToString() != "")
                            reemp.cLocalidadEnt.SelectedValue = SolActual.dsSolicitud.Tables[4].Rows[0]["UNID_LOCALIDAD"].ToString();
                        reemp.tbFaxEnt.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["FAX_NUMBER"].ToString();
                        reemp.tbFaxExtEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["FAX_EXTENS"].ToString();
                        reemp.tbTelExtEntrega.Text = SolActual.dsSolicitud.Tables[4].Rows[0]["TEL_EXTENS"].ToString();
                    }

                    if (SolActual.dsSolicitud.Tables[9].Rows.Count != 0)
                    {
                        reemp.tGerencia.Text = SolActual.dsSolicitud.Tables[9].Rows[0]["GERENCIA"].ToString();
                        reemp.tNoClo.Text = SolActual.dsSolicitud.Tables[9].Rows[0]["CODIGO"].ToString();
                        reemp.cCenLog.SelectedValue = SolActual.dsSolicitud.Tables[9].Rows[0]["ID_CLO"].ToString();
                        reemp.cLeadTime.SelectedValue = SolActual.dsSolicitud.Tables[9].Rows[0]["ID_LEADTIME"].ToString();
                    }

                    //Faltaba tabla Información Adicional
                    if (SolActual.dsSolicitud.Tables[13].Rows.Count != 0)
                    {
                        reemp.tRespoFV.Text = SolActual.dsSolicitud.Tables[13].Rows[0]["RESPONSABLE_FDV"].ToString();
                        reemp.tNoEmpleado.Text = SolActual.dsSolicitud.Tables[13].Rows[0]["NUM_EMPLEADO"].ToString();
                    }
                    if (SolActual.dsSolicitud.Tables[3].Rows.Count != 0)
                    {
                        reemp.cClaveBanco.SelectedItem = SolActual.dsSolicitud.Tables[3].Rows[0]["ID_BANCO"].ToString();
                        reemp.tCuentaBancaria.Text = SolActual.dsSolicitud.Tables[3].Rows[0]["CTA_BANCARIA"].ToString();
                        reemp.tSucursal.Text = SolActual.dsSolicitud.Tables[3].Rows[0]["SUCURSAL"].ToString();

                        foreach (var item in reemp.cClaveBanco.Items)
                        {
                            DataRowView drv = (DataRowView)item;
                            if (drv.Row[0].ToString().Trim() == SolActual.dsSolicitud.Tables[3].Rows[0]["ID_BANCO"].ToString().Trim())
                                reemp.cClaveBanco.SelectedItem = item;
                        }

                    }
                    dt = null;

                    if (SolActual.dsSolicitud.Tables[14].Rows.Count != 0)
                    {
                        reemp.tNomDPV.Text = SolActual.dsSolicitud.Tables[14].Rows[0]["NOMBRE"].ToString();
                        reemp.tTelDPV.Text = SolActual.dsSolicitud.Tables[14].Rows[0]["TELEFONO"].ToString();
                        reemp.tTitulo.Text = SolActual.dsSolicitud.Tables[14].Rows[0]["TITULO"].ToString();
                        reemp.tMailDPV.Text = SolActual.dsSolicitud.Tables[14].Rows[0]["CORREO"].ToString();
                        reemp.cZona.SelectedValue = SolActual.dsSolicitud.Tables[14].Rows[0]["ID_ZONA"].ToString();
                        reemp.cMedioColoca.SelectedValue = SolActual.dsSolicitud.Tables[14].Rows[0]["ID_MED_COLOCACION"].ToString();
                        reemp.cFrecuencia.SelectedValue = SolActual.dsSolicitud.Tables[14].Rows[0]["ID_FRECUENCIA"].ToString();
                        dt = getIva.GetIva(reemp.cZona.SelectedValue.ToString());
                        if (dt.Rows.Count != 0)
                        {
                            reemp.tIVA.Text = dt.Rows[0]["IVA_VAL"].ToString();
                            reemp.tIVA.IsEnabled = false;
                        }
                        dt = Zona.GetData(reemp.cTipoNegocios.SelectedValue.ToString());
                        if (dt.Rows.Count != 0)
                            reemp.lbl_GrupoPrecios.Content = dt.Rows[0][reemp.cZona.Text.ToString()].ToString();
                        string diasc = SolActual.dsSolicitud.Tables[14].Rows[0]["DIAS_COLOCACION"].ToString();
                        string diase = SolActual.dsSolicitud.Tables[14].Rows[0]["DIAS_ENTREGA"].ToString();
                        char[] delimiterChars = { ',', '\t' };

                        string[] losdiasc = diasc.Split(delimiterChars);
                        if (losdiasc[0] == "1") reemp.chDiaCL.IsChecked = true;
                        if (losdiasc[1] == "1") reemp.chDiaCM.IsChecked = true;
                        if (losdiasc[2] == "1") reemp.chDiaCMi.IsChecked = true;
                        if (losdiasc[3] == "1") reemp.chDiaCJ.IsChecked = true;
                        if (losdiasc[4] == "1") reemp.chDiaCV.IsChecked = true;
                        if (losdiasc[5] == "1") reemp.chDiaCS.IsChecked = true;
                    }

                    reemp.cPersona.SelectionChanged += new SelectionChangedEventHandler(reemp.cPersona_SelectionChanged);
                    reemp.cTipoSolicitud.SelectionChanged += new SelectionChangedEventHandler(reemp.cTipoSolicitud_SelectionChanged);
                    reemp.chMismoDom.Click += new RoutedEventHandler(reemp.chMismoDom_Click);

                    reemp.SolicitudDocs = SolActual.dsSolicitud.Tables[0].Rows[0]["UNID_SOLICITUD_DOCUMENTOS"].ToString();
                    reemp.Cperso = reemp.cPersona.SelectedValue.ToString();
                    reemp.Ctiposol = reemp.cTipoSolicitud.SelectedValue.ToString();
                    reemp.Check = reemp.CheckMismoDomicilio;
                    reemp.ft = 1;
                    reemp.llamarArchivos(Convert.ToInt32(reemp.lbl_idTipo.Content), reemp.cTipoSolicitud.SelectedValue.ToString(), reemp.cPersona.SelectedValue.ToString());
                    reemp.llenarUnidsDocumentosPop(SolActual.Unid_solicitud);
                    reemp.setLengthRFC();

                    if (SolActual.Id_status > 1 && SolActual.Id_status != 6)
                    {
                        reemp.spAlta.IsEnabled = false;
                        reemp.spPrioridades.IsEnabled = false;
                        reemp.bdPrioridad.MouseUp -= new MouseButtonEventHandler(reemp.bdPrioridad_MouseUp);
                        reemp.bdPrioridad.Cursor = Cursors.Arrow;
                        reemp.popPrioridad.IsOpen = false;
                        reemp.BloqueoMenus(false);
                    }
                    reemp.PanelCentral.ScrollToVerticalOffset(0);
                    #endregion REEMPLAZOs

                    break;

            }

        }
        public UINuevaSolicitud Alta
        {
            get { return alta; }
        }

        public UINuevaSolicitud Reemplazos
        {
            get { return reemplazar; }
        }

        public UIModificaciones Modificaciones
        {
            get { return modificar; }

        }

        void dgrw_MouseUp(object sender, MouseButtonEventArgs e)
        {
            Border actual = (Border)sender;
            string a = actual.Name;
            try
            {
                string Id;

                Id = a.Substring(2, a.Length - 2);

                // método para abrir  la solicitud
                Solicitud solicitudActual = new Solicitud(Id);

                //aqui va el cargado de formularios

                string x = solicitudActual.dsSolicitud.Tables[11].Rows[0]["ID_TIPO_SOLICITUD"].ToString();

                Mouse.OverrideCursor = Cursors.Wait;
                try
                {
                    cargarSolicitud(x, solicitudActual);
                }
                finally
                {
                    Mouse.OverrideCursor = null;
                }


            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        public void RefreshContadores()
        {
            solicitud.loadCounters();
            RefreshCounters();
        }

        public void brdNavegacionAgrup_MouseUp(object sender, MouseButtonEventArgs e)
        {
            Visibility vis = new Visibility();
            BitmapImage bi1 = new BitmapImage();
            String simgs;
            switch (((Border)sender).Name)
            {
                case "tipo":
                    vis = (BtnAltasStckPnl.Visibility == Visibility.Collapsed) ? Visibility.Visible : Visibility.Collapsed;
                    BtnAltasStckPnl.Visibility = vis;
                    BtnModificacionesStckPnl.Visibility = vis;
                    BtnReemplazosStckPnl.Visibility = vis;
                    bi1 = new BitmapImage();
                    bi1.CacheOption = BitmapCacheOption.OnLoad;
                    bi1.BeginInit();
                    if(imgTipo.Source.ToString().EndsWith("UP1.png"))
                        simgs = "Images/Black_Arrow_Down1.png";
                    else
                        simgs = "Images/Black_Arrow_UP1.png";
                    bi1.UriSource = new Uri(simgs, UriKind.Relative);
                    bi1.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
                    bi1.EndInit();
                    imgTipo.Source = bi1;
                    imgTipo.Height = 10;
                    imgTipo.Width = 10;
                    break;
                case "status":
                    vis = (BtnAprobadasStckPnl.Visibility == Visibility.Collapsed) ? Visibility.Visible : Visibility.Collapsed;
                    BtnAprobadasStckPnl.Visibility = vis;
                    BtnCanceladaStckPnl.Visibility = vis;
                    BtnEnviandoStckPnl.Visibility = vis;
                    BtnEnprocesoStckPnl.Visibility = vis;
                    BtnRechazadaStckPnl.Visibility = vis;
                    BtnBorradoresStckPnl.Visibility = vis;
                    bi1 = new BitmapImage();
                    bi1.CacheOption = BitmapCacheOption.OnLoad;
                    bi1.BeginInit();
                    if (imgStatus.Source.ToString().EndsWith("UP1.png"))
                        simgs = "Images/Black_Arrow_Down1.png";
                    else
                        simgs = "Images/Black_Arrow_UP1.png";
                    bi1.UriSource = new Uri(simgs, UriKind.Relative);
                    bi1.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
                    bi1.EndInit();
                    imgStatus.Stretch = Stretch.Fill;
                    imgStatus.Source = bi1;
                    imgStatus.Height = 10;
                    imgStatus.Width = 10;
                    break;
                case "autorizante":
                    vis = (BtnDatosMaestrosStckPnl.Visibility == Visibility.Collapsed) ? Visibility.Visible : Visibility.Collapsed;
                    BtnDatosMaestrosStckPnl.Visibility = vis;
                    BtnCredyCobraStckPnl.Visibility = vis;
                    BtnDistribucionStckPnl.Visibility = vis;
                    BtnCatRetailStckPnl.Visibility = vis;
                    BtnDesyAdminStckPnl.Visibility = vis;
                    bi1 = new BitmapImage();
                    bi1.CacheOption = BitmapCacheOption.OnLoad;
                    bi1.BeginInit();
                    if (imgAutorizante.Source.ToString().EndsWith("UP1.png"))
                        simgs = "Images/Black_Arrow_Down1.png";
                    else
                        simgs = "Images/Black_Arrow_UP1.png";
                    bi1.UriSource = new Uri(simgs, UriKind.Relative);
                    bi1.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
                    bi1.EndInit();
                    imgAutorizante.Stretch = Stretch.Fill;
                    imgAutorizante.Source = bi1;
                    imgAutorizante.Height = 10;
                    imgAutorizante.Width = 10;
                    break;
            }
        }

    }//class
}
